| Accumulator.hpp | | Accumulator.hpp | |
| | | | |
| skipping to change at line 40 | | skipping to change at line 40 | |
| * - double: 2ns | | * - double: 2ns | |
| * - Accumulator<double>: 23ns | | * - Accumulator<double>: 23ns | |
| * | | * | |
| * In the documentation of the member functions, \e sum stands for the va
lue | | * In the documentation of the member functions, \e sum stands for the va
lue | |
| * currently held in the accumulator. | | * currently held in the accumulator. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Accumulator.cpp | | * \include example-Accumulator.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| template<typename T = Math::real> | | template<typename T = Math::real> | |
|
| class GEOGRAPHIC_EXPORT Accumulator { | | class GEOGRAPHICLIB_EXPORT Accumulator { | |
| private: | | private: | |
| // _s + _t accumulators for the sum. | | // _s + _t accumulators for the sum. | |
| T _s, _t; | | T _s, _t; | |
| // Same as Math::sum, but requires abs(u) >= abs(v). This isn't curren
tly | | // Same as Math::sum, but requires abs(u) >= abs(v). This isn't curren
tly | |
| // used. | | // used. | |
| static inline T fastsum(T u, T v, T& t) throw() { | | static inline T fastsum(T u, T v, T& t) throw() { | |
| volatile T s = u + v; | | volatile T s = u + v; | |
| volatile T vp = s - u; | | volatile T vp = s - u; | |
| t = v - vp; | | t = v - vp; | |
| return s; | | return s; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| AlbersEqualArea.hpp | | AlbersEqualArea.hpp | |
| | | | |
| skipping to change at line 60 | | skipping to change at line 60 | |
| * for specifying a false easting or false northing or a different latitu
de | | * for specifying a false easting or false northing or a different latitu
de | |
| * of origin. | | * of origin. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-AlbersEqualArea.cpp | | * \include example-AlbersEqualArea.cpp | |
| * | | * | |
| * <a href="ConicProj.1.html">ConicProj</a> is a command-line utility | | * <a href="ConicProj.1.html">ConicProj</a> is a command-line utility | |
| * providing access to the functionality of LambertConformalConic and | | * providing access to the functionality of LambertConformalConic and | |
| * AlbersEqualArea. | | * AlbersEqualArea. | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT AlbersEqualArea { | | class GEOGRAPHICLIB_EXPORT AlbersEqualArea { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| real _a, _f, _fm, _e2, _e, _e2m, _qZ, _qx; | | real _a, _f, _fm, _e2, _e, _e2m, _qZ, _qx; | |
| real _sign, _lat0, _k0; | | real _sign, _lat0, _k0; | |
| real _n0, _m02, _nrho0, _k2, _txi0, _scxi0, _sxi0; | | real _n0, _m02, _nrho0, _k2, _txi0, _scxi0, _sxi0; | |
| static const real eps_; | | static const real eps_; | |
| static const real epsx_; | | static const real epsx_; | |
| static const real epsx2_; | | static const real epsx2_; | |
| static const real tol_; | | static const real tol_; | |
| static const real tol0_; | | static const real tol0_; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| AzimuthalEquidistant.hpp | | AzimuthalEquidistant.hpp | |
| | | | |
| skipping to change at line 42 | | skipping to change at line 42 | |
| * Geodesic::WGS84). For more information on geodesics see \ref geodesic
. | | * Geodesic::WGS84). For more information on geodesics see \ref geodesic
. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-AzimuthalEquidistant.cpp | | * \include example-AzimuthalEquidistant.cpp | |
| * | | * | |
| * <a href="GeodesicProj.1.html">GeodesicProj</a> is a command-line utili
ty | | * <a href="GeodesicProj.1.html">GeodesicProj</a> is a command-line utili
ty | |
| * providing access to the functionality of AzimuthalEquidistant, Gnomoni
c, | | * providing access to the functionality of AzimuthalEquidistant, Gnomoni
c, | |
| * and CassiniSoldner. | | * and CassiniSoldner. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT AzimuthalEquidistant { | | class GEOGRAPHICLIB_EXPORT AzimuthalEquidistant { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| Geodesic _earth; | | Geodesic _earth; | |
| static const real eps_; | | static const real eps_; | |
| public: | | public: | |
| | | | |
| /** | | /** | |
| * Constructor for AzimuthalEquidistant. | | * Constructor for AzimuthalEquidistant. | |
| * | | * | |
| * @param[in] earth the Geodesic object to use for geodesic calculation
s. | | * @param[in] earth the Geodesic object to use for geodesic calculation
s. | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| CassiniSoldner.hpp | | CassiniSoldner.hpp | |
| | | | |
| skipping to change at line 69 | | skipping to change at line 69 | |
| * respectively, (\e lat1, \e lon1) and (\e lat, \e lon). | | * respectively, (\e lat1, \e lon1) and (\e lat, \e lon). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-CassiniSoldner.cpp | | * \include example-CassiniSoldner.cpp | |
| * | | * | |
| * <a href="GeodesicProj.1.html">GeodesicProj</a> is a command-line utili
ty | | * <a href="GeodesicProj.1.html">GeodesicProj</a> is a command-line utili
ty | |
| * providing access to the functionality of AzimuthalEquidistant, Gnomoni
c, | | * providing access to the functionality of AzimuthalEquidistant, Gnomoni
c, | |
| * and CassiniSoldner. | | * and CassiniSoldner. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT CassiniSoldner { | | class GEOGRAPHICLIB_EXPORT CassiniSoldner { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| Geodesic _earth; | | Geodesic _earth; | |
| GeodesicLine _meridian; | | GeodesicLine _meridian; | |
| real _sbet0, _cbet0; | | real _sbet0, _cbet0; | |
| static const real eps1_; | | static const real eps1_; | |
| static const real tiny_; | | static const real tiny_; | |
| static const unsigned maxit_ = 10; | | static const unsigned maxit_ = 10; | |
| | | | |
| // The following private helper functions are copied from Geodesic. | | // The following private helper functions are copied from Geodesic. | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| CircularEngine.hpp | | CircularEngine.hpp | |
| | | | |
| skipping to change at line 52 | | skipping to change at line 52 | |
| * | | * | |
| * CircularEngine stores the coefficients needed to allow the summation o
ver | | * CircularEngine stores the coefficients needed to allow the summation o
ver | |
| * order to be performed in 2 or 6 vectors of length \e M + 1 (depending
on | | * order to be performed in 2 or 6 vectors of length \e M + 1 (depending
on | |
| * whether gradients are to be calculated). For this reason the construc
tor | | * whether gradients are to be calculated). For this reason the construc
tor | |
| * may throw a std::bad_alloc exception. | | * may throw a std::bad_alloc exception. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-CircularEngine.cpp | | * \include example-CircularEngine.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT CircularEngine { | | class GEOGRAPHICLIB_EXPORT CircularEngine { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| enum normalization { | | enum normalization { | |
| FULL = SphericalEngine::FULL, | | FULL = SphericalEngine::FULL, | |
| SCHMIDT = SphericalEngine::SCHMIDT, | | SCHMIDT = SphericalEngine::SCHMIDT, | |
| }; | | }; | |
| int _M; | | int _M; | |
| bool _gradp; | | bool _gradp; | |
| unsigned _norm; | | unsigned _norm; | |
| real _a, _r, _u, _t; | | real _a, _r, _u, _t; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Constants.hpp | | Constants.hpp | |
| | | | |
| skipping to change at line 19 | | skipping to change at line 19 | |
| | | | |
| #if !defined(GEOGRAPHICLIB_CONSTANTS_HPP) | | #if !defined(GEOGRAPHICLIB_CONSTANTS_HPP) | |
| #define GEOGRAPHICLIB_CONSTANTS_HPP 1 | | #define GEOGRAPHICLIB_CONSTANTS_HPP 1 | |
| | | | |
| #include <GeographicLib/Config.h> | | #include <GeographicLib/Config.h> | |
| | | | |
| /** | | /** | |
| * A compile-time assert. Use C++11 static_assert, if available. | | * A compile-time assert. Use C++11 static_assert, if available. | |
| **********************************************************************/ | | **********************************************************************/ | |
| #if !defined(STATIC_ASSERT) | | #if !defined(STATIC_ASSERT) | |
|
| # if defined(__GXX_EXPERIMENTAL_CXX0X__) | | # if __cplusplus >= 201103 | |
| | | # define STATIC_ASSERT static_assert | |
| | | # elif defined(__GXX_EXPERIMENTAL_CXX0X__) | |
| # define STATIC_ASSERT static_assert | | # define STATIC_ASSERT static_assert | |
| # elif defined(_MSC_VER) && _MSC_VER >= 1600 | | # elif defined(_MSC_VER) && _MSC_VER >= 1600 | |
| # define STATIC_ASSERT static_assert | | # define STATIC_ASSERT static_assert | |
| # else | | # else | |
| # define STATIC_ASSERT(cond,reason) \ | | # define STATIC_ASSERT(cond,reason) \ | |
| { enum{ STATIC_ASSERT_ENUM = 1/int(cond) }; } | | { enum{ STATIC_ASSERT_ENUM = 1/int(cond) }; } | |
| # endif | | # endif | |
| #endif | | #endif | |
| | | | |
|
| #if defined(_WIN32) && defined(GEOGRAPHIC_SHARED_LIB) && GEOGRAPHIC_SHARED_ | | #if defined(_MSC_VER) && defined(GEOGRAPHICLIB_SHARED_LIB) && \ | |
| LIB | | GEOGRAPHICLIB_SHARED_LIB | |
| # if defined(Geographic_EXPORTS) | | # if GEOGRAPHICLIB_SHARED_LIB > 1 | |
| # define GEOGRAPHIC_EXPORT __declspec(dllexport) | | # error GEOGRAPHICLIB_SHARED_LIB must be 0 or 1 | |
| | | # elif defined(GeographicLib_EXPORTS) | |
| | | # define GEOGRAPHICLIB_EXPORT __declspec(dllexport) | |
| # else | | # else | |
|
| # define GEOGRAPHIC_EXPORT __declspec(dllimport) | | # define GEOGRAPHICLIB_EXPORT __declspec(dllimport) | |
| # endif | | # endif | |
| #else | | #else | |
|
| # define GEOGRAPHIC_EXPORT | | # define GEOGRAPHICLIB_EXPORT | |
| #endif | | #endif | |
| | | | |
| #include <stdexcept> | | #include <stdexcept> | |
| #include <string> | | #include <string> | |
| #include <GeographicLib/Math.hpp> | | #include <GeographicLib/Math.hpp> | |
| | | | |
| /** | | /** | |
| * \brief Namespace for %GeographicLib | | * \brief Namespace for %GeographicLib | |
| * | | * | |
| * All of %GeographicLib is defined within the GeographicLib namespace. In | | * All of %GeographicLib is defined within the GeographicLib namespace. In | |
| | | | |
| skipping to change at line 61 | | skipping to change at line 66 | |
| | | | |
| /** | | /** | |
| * \brief %Constants needed by %GeographicLib | | * \brief %Constants needed by %GeographicLib | |
| * | | * | |
| * Define constants specifying the WGS84 ellipsoid, the UTM and UPS | | * Define constants specifying the WGS84 ellipsoid, the UTM and UPS | |
| * projections, and various unit conversions. | | * projections, and various unit conversions. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Constants.cpp | | * \include example-Constants.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT Constants { | | class GEOGRAPHICLIB_EXPORT Constants { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| Constants(); // Disable constructor | | Constants(); // Disable constructor | |
| | | | |
| public: | | public: | |
| /** | | /** | |
| * A synonym for Math::degree<real>(). | | * A synonym for Math::degree<real>(). | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| static inline Math::real degree() throw() { return Math::degree<real>()
; } | | static inline Math::real degree() throw() { return Math::degree<real>()
; } | |
| /** | | /** | |
| | | | |
End of changes. 5 change blocks. |
| 8 lines changed or deleted | | 12 lines changed or added | |
|
| DMS.hpp | | DMS.hpp | |
| | | | |
| skipping to change at line 34 | | skipping to change at line 34 | |
| /** | | /** | |
| * \brief Convert between degrees and the %DMS representation | | * \brief Convert between degrees and the %DMS representation | |
| * | | * | |
| * Parse a string representing degree, minutes, and seconds and return th
e | | * Parse a string representing degree, minutes, and seconds and return th
e | |
| * angle in degrees and format an angle in degrees as degree, minutes, an
d | | * angle in degrees and format an angle in degrees as degree, minutes, an
d | |
| * seconds. In addition, handle NANs and infinities on input and output. | | * seconds. In addition, handle NANs and infinities on input and output. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-DMS.cpp | | * \include example-DMS.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT DMS { | | class GEOGRAPHICLIB_EXPORT DMS { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| // Replace all occurrences of pat by c | | // Replace all occurrences of pat by c | |
| static void replace(std::string& s, const std::string& pat, char c) { | | static void replace(std::string& s, const std::string& pat, char c) { | |
| std::string::size_type p = 0; | | std::string::size_type p = 0; | |
| while (true) { | | while (true) { | |
| p = s.find(pat, p); | | p = s.find(pat, p); | |
| if (p == std::string::npos) | | if (p == std::string::npos) | |
| break; | | break; | |
| s.replace(p, pat.length(), 1, c); | | s.replace(p, pat.length(), 1, c); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Ellipsoid.hpp | | Ellipsoid.hpp | |
| | | | |
| skipping to change at line 39 | | skipping to change at line 39 | |
| * provide functionality which can be provided by the Geodesic class. | | * provide functionality which can be provided by the Geodesic class. | |
| * However Geodesic uses a series approximation (valid for abs \e f < 1/1
50), | | * However Geodesic uses a series approximation (valid for abs \e f < 1/1
50), | |
| * whereas Ellipsoid computes these quantities using EllipticFunction whi
ch | | * whereas Ellipsoid computes these quantities using EllipticFunction whi
ch | |
| * provides accurate results even when \e f is large. Use of this class | | * provides accurate results even when \e f is large. Use of this class | |
| * should be limited to −3 < \e f < 3/4 (i.e., 1/4 < b/a < 4). | | * should be limited to −3 < \e f < 3/4 (i.e., 1/4 < b/a < 4). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Ellipsoid.cpp | | * \include example-Ellipsoid.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT Ellipsoid { | | class GEOGRAPHICLIB_EXPORT Ellipsoid { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const int numit_ = 10; | | static const int numit_ = 10; | |
| static const real stol_; | | static const real stol_; | |
| real _a, _f, _f1, _f12, _e2, _e12, _n, _b; | | real _a, _f, _f1, _f12, _e2, _e12, _n, _b; | |
| TransverseMercator _tm; | | TransverseMercator _tm; | |
| EllipticFunction _ell; | | EllipticFunction _ell; | |
| AlbersEqualArea _au; | | AlbersEqualArea _au; | |
| static real tand(real x) throw() { | | static real tand(real x) throw() { | |
| return | | return | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| EllipticFunction.hpp | | EllipticFunction.hpp | |
| | | | |
| skipping to change at line 62 | | skipping to change at line 62 | |
| * - R. Bulirsch, | | * - R. Bulirsch, | |
| * <a href="http://dx.doi.org/10.1007/BF01397975"> Numerical Calculatio
n of | | * <a href="http://dx.doi.org/10.1007/BF01397975"> Numerical Calculatio
n of | |
| * Elliptic Integrals and Elliptic Functions</a>, Numericshe Mathematik
7, | | * Elliptic Integrals and Elliptic Functions</a>, Numericshe Mathematik
7, | |
| * 78--90 (1965). | | * 78--90 (1965). | |
| * . | | * . | |
| * The notation follows http://dlmf.nist.gov/19 and http://dlmf.nist.gov/
22 | | * The notation follows http://dlmf.nist.gov/19 and http://dlmf.nist.gov/
22 | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-EllipticFunction.cpp | | * \include example-EllipticFunction.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT EllipticFunction { | | class GEOGRAPHICLIB_EXPORT EllipticFunction { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const real tol_; | | static const real tol_; | |
| static const real tolRF_; | | static const real tolRF_; | |
| static const real tolRD_; | | static const real tolRD_; | |
| static const real tolRG0_; | | static const real tolRG0_; | |
| static const real tolJAC_; | | static const real tolJAC_; | |
| enum { num_ = 13 }; // Max depth required for sncndn. Probably 5 is en
ough. | | enum { num_ = 13 }; // Max depth required for sncndn. Probably 5 is en
ough. | |
| real _k2, _kp2, _alpha2, _alphap2, _eps; | | real _k2, _kp2, _alpha2, _alphap2, _eps; | |
| mutable bool _init; | | mutable bool _init; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| GeoCoords.hpp | | GeoCoords.hpp | |
| | | | |
| skipping to change at line 49 | | skipping to change at line 49 | |
| * | | * | |
| * Once the input string has been parsed, you can print the result out in
any | | * Once the input string has been parsed, you can print the result out in
any | |
| * of the formats, decimal degrees, degrees minutes seconds, MGRS, UTM/UP
S. | | * of the formats, decimal degrees, degrees minutes seconds, MGRS, UTM/UP
S. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-GeoCoords.cpp | | * \include example-GeoCoords.cpp | |
| * | | * | |
| * <a href="GeoConvert.1.html">GeoConvert</a> is a command-line utility | | * <a href="GeoConvert.1.html">GeoConvert</a> is a command-line utility | |
| * providing access to the functionality of GeoCoords. | | * providing access to the functionality of GeoCoords. | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT GeoCoords { | | class GEOGRAPHICLIB_EXPORT GeoCoords { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| real _lat, _long, _easting, _northing, _gamma, _k; | | real _lat, _long, _easting, _northing, _gamma, _k; | |
| bool _northp; | | bool _northp; | |
| int _zone; // See UTMUPS::zonespec | | int _zone; // See UTMUPS::zonespec | |
| mutable real _alt_easting, _alt_northing, _alt_gamma, _alt_k; | | mutable real _alt_easting, _alt_northing, _alt_gamma, _alt_k; | |
| mutable int _alt_zone; | | mutable int _alt_zone; | |
| | | | |
| void CopyToAlt() const throw() { | | void CopyToAlt() const throw() { | |
| _alt_easting = _easting; | | _alt_easting = _easting; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Geocentric.hpp | | Geocentric.hpp | |
| | | | |
| skipping to change at line 61 | | skipping to change at line 61 | |
| * the WGS84 ellipsoid. See \ref geocentric for further information on t
he | | * the WGS84 ellipsoid. See \ref geocentric for further information on t
he | |
| * errors. | | * errors. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Geocentric.cpp | | * \include example-Geocentric.cpp | |
| * | | * | |
| * <a href="CartConvert.1.html">CartConvert</a> is a command-line utility | | * <a href="CartConvert.1.html">CartConvert</a> is a command-line utility | |
| * providing access to the functionality of Geocentric and LocalCartesian
. | | * providing access to the functionality of Geocentric and LocalCartesian
. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT Geocentric { | | class GEOGRAPHICLIB_EXPORT Geocentric { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| friend class LocalCartesian; | | friend class LocalCartesian; | |
| friend class MagneticCircle; // MagneticCircle uses Rotation | | friend class MagneticCircle; // MagneticCircle uses Rotation | |
| friend class MagneticModel; // MagneticModel uses IntForward | | friend class MagneticModel; // MagneticModel uses IntForward | |
| friend class GravityCircle; // GravityCircle uses Rotation | | friend class GravityCircle; // GravityCircle uses Rotation | |
| friend class GravityModel; // GravityModel uses IntForward | | friend class GravityModel; // GravityModel uses IntForward | |
| friend class NormalGravity; // NormalGravity uses IntForward | | friend class NormalGravity; // NormalGravity uses IntForward | |
| friend class SphericalHarmonic; | | friend class SphericalHarmonic; | |
| friend class SphericalHarmonic1; | | friend class SphericalHarmonic1; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Geodesic.hpp | | Geodesic.hpp | |
| | | | |
| skipping to change at line 169 | | skipping to change at line 169 | |
| * . | | * . | |
| * For more information on geodesics see \ref geodesic. | | * For more information on geodesics see \ref geodesic. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Geodesic.cpp | | * \include example-Geodesic.cpp | |
| * | | * | |
| * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | | * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | |
| * to the functionality of Geodesic and GeodesicLine. | | * to the functionality of Geodesic and GeodesicLine. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT Geodesic { | | class GEOGRAPHICLIB_EXPORT Geodesic { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| friend class GeodesicLine; | | friend class GeodesicLine; | |
| static const int nA1_ = GEOGRAPHICLIB_GEODESIC_ORDER; | | static const int nA1_ = GEOGRAPHICLIB_GEODESIC_ORDER; | |
| static const int nC1_ = GEOGRAPHICLIB_GEODESIC_ORDER; | | static const int nC1_ = GEOGRAPHICLIB_GEODESIC_ORDER; | |
| static const int nC1p_ = GEOGRAPHICLIB_GEODESIC_ORDER; | | static const int nC1p_ = GEOGRAPHICLIB_GEODESIC_ORDER; | |
| static const int nA2_ = GEOGRAPHICLIB_GEODESIC_ORDER; | | static const int nA2_ = GEOGRAPHICLIB_GEODESIC_ORDER; | |
| static const int nC2_ = GEOGRAPHICLIB_GEODESIC_ORDER; | | static const int nC2_ = GEOGRAPHICLIB_GEODESIC_ORDER; | |
| static const int nA3_ = GEOGRAPHICLIB_GEODESIC_ORDER; | | static const int nA3_ = GEOGRAPHICLIB_GEODESIC_ORDER; | |
| static const int nA3x_ = nA3_; | | static const int nA3x_ = nA3_; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| GeodesicExact.hpp | | GeodesicExact.hpp | |
| | | | |
| skipping to change at line 80 | | skipping to change at line 80 | |
| * Geodesic class for additional information on the geodesics problems. | | * Geodesic class for additional information on the geodesics problems. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-GeodesicExact.cpp | | * \include example-GeodesicExact.cpp | |
| * | | * | |
| * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | | * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | |
| * to the functionality of GeodesicExact and GeodesicLineExact (via the -
E | | * to the functionality of GeodesicExact and GeodesicLineExact (via the -
E | |
| * option). | | * option). | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT GeodesicExact { | | class GEOGRAPHICLIB_EXPORT GeodesicExact { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| friend class GeodesicLineExact; | | friend class GeodesicLineExact; | |
| static const int nC4_ = GEOGRAPHICLIB_GEODESICEXACT_ORDER; | | static const int nC4_ = GEOGRAPHICLIB_GEODESICEXACT_ORDER; | |
| static const int nC4x_ = (nC4_ * (nC4_ + 1)) / 2; | | static const int nC4x_ = (nC4_ * (nC4_ + 1)) / 2; | |
| static const unsigned maxit1_ = 20; | | static const unsigned maxit1_ = 20; | |
| static const unsigned maxit2_ = maxit1_ + | | static const unsigned maxit2_ = maxit1_ + | |
| std::numeric_limits<real>::digits + 10; | | std::numeric_limits<real>::digits + 10; | |
| | | | |
| static const real tiny_; | | static const real tiny_; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| GeodesicLine.hpp | | GeodesicLine.hpp | |
| | | | |
| skipping to change at line 59 | | skipping to change at line 59 | |
| * . | | * . | |
| * For more information on geodesics see \ref geodesic. | | * For more information on geodesics see \ref geodesic. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-GeodesicLine.cpp | | * \include example-GeodesicLine.cpp | |
| * | | * | |
| * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | | * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | |
| * to the functionality of Geodesic and GeodesicLine. | | * to the functionality of Geodesic and GeodesicLine. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT GeodesicLine { | | class GEOGRAPHICLIB_EXPORT GeodesicLine { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| friend class Geodesic; | | friend class Geodesic; | |
| static const int nC1_ = Geodesic::nC1_; | | static const int nC1_ = Geodesic::nC1_; | |
| static const int nC1p_ = Geodesic::nC1p_; | | static const int nC1p_ = Geodesic::nC1p_; | |
| static const int nC2_ = Geodesic::nC2_; | | static const int nC2_ = Geodesic::nC2_; | |
| static const int nC3_ = Geodesic::nC3_; | | static const int nC3_ = Geodesic::nC3_; | |
| static const int nC4_ = Geodesic::nC4_; | | static const int nC4_ = Geodesic::nC4_; | |
| | | | |
| real _lat1, _lon1, _azi1; | | real _lat1, _lon1, _azi1; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| GeodesicLineExact.hpp | | GeodesicLineExact.hpp | |
| | | | |
| skipping to change at line 35 | | skipping to change at line 35 | |
| * GeodesicLine class. | | * GeodesicLine class. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-GeodesicLineExact.cpp | | * \include example-GeodesicLineExact.cpp | |
| * | | * | |
| * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | | * <a href="Geod.1.html">Geod</a> is a command-line utility providing acc
ess | |
| * to the functionality of GeodesicExact and GeodesicLineExact (via the -
E | | * to the functionality of GeodesicExact and GeodesicLineExact (via the -
E | |
| * option). | | * option). | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT GeodesicLineExact { | | class GEOGRAPHICLIB_EXPORT GeodesicLineExact { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| friend class GeodesicExact; | | friend class GeodesicExact; | |
| static const int nC4_ = GeodesicExact::nC4_; | | static const int nC4_ = GeodesicExact::nC4_; | |
| | | | |
| real _lat1, _lon1, _azi1; | | real _lat1, _lon1, _azi1; | |
| real _a, _f, _b, _c2, _f1, _e2, _salp0, _calp0, _k2, | | real _a, _f, _b, _c2, _f1, _e2, _salp0, _calp0, _k2, | |
| _salp1, _calp1, _ssig1, _csig1, _dn1, _stau1, _ctau1, | | _salp1, _calp1, _ssig1, _csig1, _dn1, _stau1, _ctau1, | |
| _somg1, _comg1, _cchi1, | | _somg1, _comg1, _cchi1, | |
| _A4, _B41, _E0, _D0, _H0, _E1, _D1, _H1; | | _A4, _B41, _E0, _D0, _H0, _E1, _D1, _H1; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Geohash.hpp | | Geohash.hpp | |
| | | | |
| skipping to change at line 39 | | skipping to change at line 39 | |
| * . | | * . | |
| * They provide a compact string representation of a particular geographi
c | | * They provide a compact string representation of a particular geographi
c | |
| * location (expressed as latitude and longitude), with the property that
if | | * location (expressed as latitude and longitude), with the property that
if | |
| * trailing characters are dropped from the string the geographic locatio
n | | * trailing characters are dropped from the string the geographic locatio
n | |
| * remains nearby. | | * remains nearby. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Geohash.cpp | | * \include example-Geohash.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT Geohash { | | class GEOGRAPHICLIB_EXPORT Geohash { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const int maxlen_ = 18; | | static const int maxlen_ = 18; | |
| static const unsigned long long mask_ = 1ULL << 45; | | static const unsigned long long mask_ = 1ULL << 45; | |
| static const int decprec_[]; | | static const int decprec_[]; | |
| static const real loneps_; | | static const real loneps_; | |
| static const real lateps_; | | static const real lateps_; | |
| static const real shift_; | | static const real shift_; | |
| static const std::string lcdigits_; | | static const std::string lcdigits_; | |
| static const std::string ucdigits_; | | static const std::string ucdigits_; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Geoid.hpp | | Geoid.hpp | |
| | | | |
| skipping to change at line 83 | | skipping to change at line 83 | |
| * single-cell caching which results in a Geoid object which \e is thread | | * single-cell caching which results in a Geoid object which \e is thread | |
| * safe. | | * safe. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Geoid.cpp | | * \include example-Geoid.cpp | |
| * | | * | |
| * <a href="GeoidEval.1.html">GeoidEval</a> is a command-line utility | | * <a href="GeoidEval.1.html">GeoidEval</a> is a command-line utility | |
| * providing access to the functionality of Geoid. | | * providing access to the functionality of Geoid. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT Geoid { | | class GEOGRAPHICLIB_EXPORT Geoid { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| #if PGM_PIXEL_WIDTH != 4 | | #if PGM_PIXEL_WIDTH != 4 | |
| typedef unsigned short pixel_t; | | typedef unsigned short pixel_t; | |
| static const unsigned pixel_size_ = 2; | | static const unsigned pixel_size_ = 2; | |
| static const unsigned pixel_max_ = 0xffffu; | | static const unsigned pixel_max_ = 0xffffu; | |
| #else | | #else | |
| typedef unsigned pixel_t; | | typedef unsigned pixel_t; | |
| static const unsigned pixel_size_ = 4; | | static const unsigned pixel_size_ = 4; | |
| static const unsigned pixel_max_ = 0xffffffffu; | | static const unsigned pixel_max_ = 0xffffffffu; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| GravityCircle.hpp | | GravityCircle.hpp | |
| | | | |
| skipping to change at line 41 | | skipping to change at line 41 | |
| * See \ref gravityparallel for an example of using GravityCircle (togeth
er | | * See \ref gravityparallel for an example of using GravityCircle (togeth
er | |
| * with OpenMP) to speed up the computation of geoid heights. | | * with OpenMP) to speed up the computation of geoid heights. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-GravityCircle.cpp | | * \include example-GravityCircle.cpp | |
| * | | * | |
| * <a href="Gravity.1.html">Gravity</a> is a command-line utility providi
ng | | * <a href="Gravity.1.html">Gravity</a> is a command-line utility providi
ng | |
| * access to the functionality of GravityModel and GravityCircle. | | * access to the functionality of GravityModel and GravityCircle. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT GravityCircle { | | class GEOGRAPHICLIB_EXPORT GravityCircle { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| enum mask { | | enum mask { | |
| NONE = GravityModel::NONE, | | NONE = GravityModel::NONE, | |
| GRAVITY = GravityModel::GRAVITY, | | GRAVITY = GravityModel::GRAVITY, | |
| DISTURBANCE = GravityModel::DISTURBANCE, | | DISTURBANCE = GravityModel::DISTURBANCE, | |
| DISTURBING_POTENTIAL = GravityModel::DISTURBING_POTENTIAL, | | DISTURBING_POTENTIAL = GravityModel::DISTURBING_POTENTIAL, | |
| GEOID_HEIGHT = GravityModel::GEOID_HEIGHT, | | GEOID_HEIGHT = GravityModel::GEOID_HEIGHT, | |
| SPHERICAL_ANOMALY = GravityModel::SPHERICAL_ANOMALY, | | SPHERICAL_ANOMALY = GravityModel::SPHERICAL_ANOMALY, | |
| ALL = GravityModel::ALL, | | ALL = GravityModel::ALL, | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| GravityModel.hpp | | GravityModel.hpp | |
| | | | |
| skipping to change at line 83 | | skipping to change at line 83 | |
| * - W. A. Heiskanen and H. Moritz, Physical Geodesy (Freeman, San | | * - W. A. Heiskanen and H. Moritz, Physical Geodesy (Freeman, San | |
| * Francisco, 1967). | | * Francisco, 1967). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-GravityModel.cpp | | * \include example-GravityModel.cpp | |
| * | | * | |
| * <a href="Gravity.1.html">Gravity</a> is a command-line utility providi
ng | | * <a href="Gravity.1.html">Gravity</a> is a command-line utility providi
ng | |
| * access to the functionality of GravityModel and GravityCircle. | | * access to the functionality of GravityModel and GravityCircle. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT GravityModel { | | class GEOGRAPHICLIB_EXPORT GravityModel { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| friend class GravityCircle; | | friend class GravityCircle; | |
| static const int idlength_ = 8; | | static const int idlength_ = 8; | |
| std::string _name, _dir, _description, _date, _filename, _id; | | std::string _name, _dir, _description, _date, _filename, _id; | |
| real _amodel, _GMmodel, _zeta0, _corrmult; | | real _amodel, _GMmodel, _zeta0, _corrmult; | |
| SphericalHarmonic::normalization _norm; | | SphericalHarmonic::normalization _norm; | |
| NormalGravity _earth; | | NormalGravity _earth; | |
| std::vector<real> _Cx, _Sx, _CC, _CS, _zonal; | | std::vector<real> _Cx, _Sx, _CC, _CS, _zonal; | |
| real _dzonal0; // A left over contribution to _zonal. | | real _dzonal0; // A left over contribution to _zonal. | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| LambertConformalConic.hpp | | LambertConformalConic.hpp | |
| | | | |
| skipping to change at line 57 | | skipping to change at line 57 | |
| * latitude of origin. However these are can be simply included by the | | * latitude of origin. However these are can be simply included by the | |
| * calling function. For example the Pennsylvania South state coordinate | | * calling function. For example the Pennsylvania South state coordinate | |
| * system (<a href="http://www.spatialreference.org/ref/epsg/3364/"> | | * system (<a href="http://www.spatialreference.org/ref/epsg/3364/"> | |
| * EPSG:3364</a>) is obtained by: | | * EPSG:3364</a>) is obtained by: | |
| * \include example-LambertConformalConic.cpp | | * \include example-LambertConformalConic.cpp | |
| * | | * | |
| * <a href="ConicProj.1.html">ConicProj</a> is a command-line utility | | * <a href="ConicProj.1.html">ConicProj</a> is a command-line utility | |
| * providing access to the functionality of LambertConformalConic and | | * providing access to the functionality of LambertConformalConic and | |
| * AlbersEqualArea. | | * AlbersEqualArea. | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT LambertConformalConic { | | class GEOGRAPHICLIB_EXPORT LambertConformalConic { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| real _a, _f, _fm, _e2, _e, _e2m; | | real _a, _f, _fm, _e2, _e, _e2m; | |
| real _sign, _n, _nc, _t0nm1, _scale, _lat0, _k0; | | real _sign, _n, _nc, _t0nm1, _scale, _lat0, _k0; | |
| real _scbet0, _tchi0, _scchi0, _psi0, _nrho0, _drhomax; | | real _scbet0, _tchi0, _scchi0, _psi0, _nrho0, _drhomax; | |
| static const real eps_; | | static const real eps_; | |
| static const real epsx_; | | static const real epsx_; | |
| static const real tol_; | | static const real tol_; | |
| static const real ahypover_; | | static const real ahypover_; | |
| static const int numit_ = 5; | | static const int numit_ = 5; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| LocalCartesian.hpp | | LocalCartesian.hpp | |
| | | | |
| skipping to change at line 38 | | skipping to change at line 38 | |
| * The conversions all take place via geocentric coordinates using a | | * The conversions all take place via geocentric coordinates using a | |
| * Geocentric object (by default Geocentric::WGS84). | | * Geocentric object (by default Geocentric::WGS84). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-LocalCartesian.cpp | | * \include example-LocalCartesian.cpp | |
| * | | * | |
| * <a href="CartConvert.1.html">CartConvert</a> is a command-line utility | | * <a href="CartConvert.1.html">CartConvert</a> is a command-line utility | |
| * providing access to the functionality of Geocentric and LocalCartesian
. | | * providing access to the functionality of Geocentric and LocalCartesian
. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT LocalCartesian { | | class GEOGRAPHICLIB_EXPORT LocalCartesian { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const size_t dim_ = 3; | | static const size_t dim_ = 3; | |
| static const size_t dim2_ = dim_ * dim_; | | static const size_t dim2_ = dim_ * dim_; | |
| Geocentric _earth; | | Geocentric _earth; | |
| real _lat0, _lon0, _h0; | | real _lat0, _lon0, _h0; | |
| real _x0, _y0, _z0, _r[dim2_]; | | real _x0, _y0, _z0, _r[dim2_]; | |
| void IntForward(real lat, real lon, real h, real& x, real& y, real& z, | | void IntForward(real lat, real lon, real h, real& x, real& y, real& z, | |
| real M[dim2_]) const throw(); | | real M[dim2_]) const throw(); | |
| void IntReverse(real x, real y, real z, real& lat, real& lon, real& h, | | void IntReverse(real x, real y, real z, real& lat, real& lon, real& h, | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| MGRS.hpp | | MGRS.hpp | |
| | | | |
| skipping to change at line 62 | | skipping to change at line 62 | |
| * <a href="http://earth-info.nga.mil/GandG/geotrans/index.html">geotrans
</a> | | * <a href="http://earth-info.nga.mil/GandG/geotrans/index.html">geotrans
</a> | |
| * also provides conversions to and from MGRS. Version 3.0 (and earlier) | | * also provides conversions to and from MGRS. Version 3.0 (and earlier) | |
| * suffers from some drawbacks: | | * suffers from some drawbacks: | |
| * - Inconsistent rules are used to determine the whether a particular MG
RS | | * - Inconsistent rules are used to determine the whether a particular MG
RS | |
| * coordinate is legal. A more systematic approach is taken here. | | * coordinate is legal. A more systematic approach is taken here. | |
| * - The underlying projections are not very accurately implemented. | | * - The underlying projections are not very accurately implemented. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-MGRS.cpp | | * \include example-MGRS.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT MGRS { | | class GEOGRAPHICLIB_EXPORT MGRS { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| // The smallest length s.t., 1.0e7 - eps_ < 1.0e7 (approx 1.9 nm) | | // The smallest length s.t., 1.0e7 - eps_ < 1.0e7 (approx 1.9 nm) | |
| static const real eps_; | | static const real eps_; | |
| // The smallest angle s.t., 90 - eps_ < 90 (approx 50e-12 arcsec) | | // The smallest angle s.t., 90 - eps_ < 90 (approx 50e-12 arcsec) | |
| static const real angeps_; | | static const real angeps_; | |
| static const std::string hemispheres_; | | static const std::string hemispheres_; | |
| static const std::string utmcols_[3]; | | static const std::string utmcols_[3]; | |
| static const std::string utmrow_; | | static const std::string utmrow_; | |
| static const std::string upscols_[4]; | | static const std::string upscols_[4]; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| MagneticCircle.hpp | | MagneticCircle.hpp | |
| | | | |
| skipping to change at line 37 | | skipping to change at line 37 | |
| * Use MagneticModel::Circle to create a MagneticCircle object. (The | | * Use MagneticModel::Circle to create a MagneticCircle object. (The | |
| * constructor for this class is private.) | | * constructor for this class is private.) | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-MagneticCircle.cpp | | * \include example-MagneticCircle.cpp | |
| * | | * | |
| * <a href="MagneticField.1.html">MagneticField</a> is a command-line uti
lity | | * <a href="MagneticField.1.html">MagneticField</a> is a command-line uti
lity | |
| * providing access to the functionality of MagneticModel and MagneticCir
cle. | | * providing access to the functionality of MagneticModel and MagneticCir
cle. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT MagneticCircle { | | class GEOGRAPHICLIB_EXPORT MagneticCircle { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| | | | |
| real _a, _f, _lat, _h, _t, _cphi, _sphi, _t1, _dt0; | | real _a, _f, _lat, _h, _t, _cphi, _sphi, _t1, _dt0; | |
| bool _interpolate; | | bool _interpolate; | |
| CircularEngine _circ0, _circ1; | | CircularEngine _circ0, _circ1; | |
| | | | |
| MagneticCircle(real a, real f, real lat, real h, real t, | | MagneticCircle(real a, real f, real lat, real h, real t, | |
| real cphi, real sphi, real t1, real dt0, | | real cphi, real sphi, real t1, real dt0, | |
| bool interpolate, | | bool interpolate, | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| MagneticModel.hpp | | MagneticModel.hpp | |
| | | | |
| skipping to change at line 60 | | skipping to change at line 60 | |
| * - http://ngdc.noaa.gov/geomag/EMM/index.html | | * - http://ngdc.noaa.gov/geomag/EMM/index.html | |
| * - http://ngdc.noaa.gov/geomag/EMM/data/geomag/EMM2010_Sph_Windows_Li
nux.zip | | * - http://ngdc.noaa.gov/geomag/EMM/data/geomag/EMM2010_Sph_Windows_Li
nux.zip | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-MagneticModel.cpp | | * \include example-MagneticModel.cpp | |
| * | | * | |
| * <a href="MagneticField.1.html">MagneticField</a> is a command-line uti
lity | | * <a href="MagneticField.1.html">MagneticField</a> is a command-line uti
lity | |
| * providing access to the functionality of MagneticModel and MagneticCir
cle. | | * providing access to the functionality of MagneticModel and MagneticCir
cle. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT MagneticModel { | | class GEOGRAPHICLIB_EXPORT MagneticModel { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const int idlength_ = 8; | | static const int idlength_ = 8; | |
| std::string _name, _dir, _description, _date, _filename, _id; | | std::string _name, _dir, _description, _date, _filename, _id; | |
| real _t0, _dt0, _tmin, _tmax, _a, _hmin, _hmax; | | real _t0, _dt0, _tmin, _tmax, _a, _hmin, _hmax; | |
| int _Nmodels; | | int _Nmodels; | |
| SphericalHarmonic::normalization _norm; | | SphericalHarmonic::normalization _norm; | |
| Geocentric _earth; | | Geocentric _earth; | |
| std::vector< std::vector<real> > _G; | | std::vector< std::vector<real> > _G; | |
| std::vector< std::vector<real> > _H; | | std::vector< std::vector<real> > _H; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Math.hpp | | Math.hpp | |
| | | | |
| skipping to change at line 21 | | skipping to change at line 21 | |
| // include guard to enforce this ordering. | | // include guard to enforce this ordering. | |
| #include <GeographicLib/Constants.hpp> | | #include <GeographicLib/Constants.hpp> | |
| | | | |
| #if !defined(GEOGRAPHICLIB_MATH_HPP) | | #if !defined(GEOGRAPHICLIB_MATH_HPP) | |
| #define GEOGRAPHICLIB_MATH_HPP 1 | | #define GEOGRAPHICLIB_MATH_HPP 1 | |
| | | | |
| /** | | /** | |
| * Are C++11 math functions available? | | * Are C++11 math functions available? | |
| **********************************************************************/ | | **********************************************************************/ | |
| #if !defined(GEOGRAPHICLIB_CPLUSPLUS11_MATH) | | #if !defined(GEOGRAPHICLIB_CPLUSPLUS11_MATH) | |
|
| # if defined(__GXX_EXPERIMENTAL_CXX0X__) | | # if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ >= 8 \ | |
| | | && __cplusplus >= 201103 | |
| | | # define GEOGRAPHICLIB_CPLUSPLUS11_MATH 1 | |
| | | # elif defined(_MSC_VER) && _MSC_VER >= 1800 | |
| # define GEOGRAPHICLIB_CPLUSPLUS11_MATH 1 | | # define GEOGRAPHICLIB_CPLUSPLUS11_MATH 1 | |
| # else | | # else | |
| # define GEOGRAPHICLIB_CPLUSPLUS11_MATH 0 | | # define GEOGRAPHICLIB_CPLUSPLUS11_MATH 0 | |
| # endif | | # endif | |
| #endif | | #endif | |
| | | | |
| #if !defined(WORDS_BIGENDIAN) | | #if !defined(WORDS_BIGENDIAN) | |
| # define WORDS_BIGENDIAN 0 | | # define WORDS_BIGENDIAN 0 | |
| #endif | | #endif | |
| | | | |
| | | | |
| skipping to change at line 67 | | skipping to change at line 70 | |
| /** | | /** | |
| * \brief Mathematical functions needed by %GeographicLib | | * \brief Mathematical functions needed by %GeographicLib | |
| * | | * | |
| * Define mathematical functions in order to localize system dependencies
and | | * Define mathematical functions in order to localize system dependencies
and | |
| * to provide generic versions of the functions. In addition define a re
al | | * to provide generic versions of the functions. In addition define a re
al | |
| * type to be used by %GeographicLib. | | * type to be used by %GeographicLib. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Math.cpp | | * \include example-Math.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT Math { | | class GEOGRAPHICLIB_EXPORT Math { | |
| private: | | private: | |
| void dummy() { | | void dummy() { | |
| STATIC_ASSERT(GEOGRAPHICLIB_PRECISION >= 1 && | | STATIC_ASSERT(GEOGRAPHICLIB_PRECISION >= 1 && | |
| GEOGRAPHICLIB_PRECISION <= 3, | | GEOGRAPHICLIB_PRECISION <= 3, | |
| "Bad value of precision"); | | "Bad value of precision"); | |
| } | | } | |
| Math(); // Disable constructor | | Math(); // Disable constructor | |
| public: | | public: | |
| | | | |
| #if HAVE_LONG_DOUBLE | | #if HAVE_LONG_DOUBLE | |
| | | | |
| skipping to change at line 170 | | skipping to change at line 173 | |
| x = std::abs(x); y = std::abs(y); | | x = std::abs(x); y = std::abs(y); | |
| T a = (std::max)(x, y), b = (std::min)(x, y) / (a ? a : 1); | | T a = (std::max)(x, y), b = (std::min)(x, y) / (a ? a : 1); | |
| return a * std::sqrt(1 + b * b); | | return a * std::sqrt(1 + b * b); | |
| // For an alternative (square-root free) method see | | // For an alternative (square-root free) method see | |
| // C. Moler and D. Morrision (1983) http://dx.doi.org/10.1147/rd.276.
0577 | | // C. Moler and D. Morrision (1983) http://dx.doi.org/10.1147/rd.276.
0577 | |
| // and A. A. Dubrulle (1983) http://dx.doi.org/10.1147/rd.276.0582 | | // and A. A. Dubrulle (1983) http://dx.doi.org/10.1147/rd.276.0582 | |
| } | | } | |
| #elif GEOGRAPHICLIB_CPLUSPLUS11_MATH || (defined(_MSC_VER) && _MSC_VER >= 1
700) | | #elif GEOGRAPHICLIB_CPLUSPLUS11_MATH || (defined(_MSC_VER) && _MSC_VER >= 1
700) | |
| template<typename T> static inline T hypot(T x, T y) throw() | | template<typename T> static inline T hypot(T x, T y) throw() | |
| { return std::hypot(x, y); } | | { return std::hypot(x, y); } | |
|
| # if HAVE_LONG_DOUBLE && defined(_MSC_VER) | | # if HAVE_LONG_DOUBLE && defined(_MSC_VER) && _MSC_VER == 1700 | |
| // Visual C++ 11&12 don't have a long double overload for std::hypot -- | | // Visual C++ 11 doesn't have a long double overload for std::hypot -- | |
| // reported to MS on 2013-07-18 | | // reported to MS on 2013-07-18 | |
| // http://connect.microsoft.com/VisualStudio/feedback/details/794416 | | // http://connect.microsoft.com/VisualStudio/feedback/details/794416 | |
| // suppress the resulting "loss of data warning" with | | // suppress the resulting "loss of data warning" with | |
| static inline long double hypot(long double x, long double y) throw() | | static inline long double hypot(long double x, long double y) throw() | |
| { return std::hypot(double(x), double(y)); } | | { return std::hypot(double(x), double(y)); } | |
| # endif | | # endif | |
| #elif defined(_MSC_VER) | | #elif defined(_MSC_VER) | |
| static inline double hypot(double x, double y) throw() | | static inline double hypot(double x, double y) throw() | |
| { return _hypot(x, y); } | | { return _hypot(x, y); } | |
| # if _MSC_VER < 1400 | | # if _MSC_VER < 1400 | |
| | | | |
End of changes. 3 change blocks. |
| 4 lines changed or deleted | | 7 lines changed or added | |
|
| NormalGravity.hpp | | NormalGravity.hpp | |
| | | | |
| skipping to change at line 60 | | skipping to change at line 60 | |
| * References: | | * References: | |
| * - W. A. Heiskanen and H. Moritz, Physical Geodesy (Freeman, San | | * - W. A. Heiskanen and H. Moritz, Physical Geodesy (Freeman, San | |
| * Francisco, 1967), Secs. 1-19, 2-7, 2-8 (2-9, 2-10), 6-2 (6-3). | | * Francisco, 1967), Secs. 1-19, 2-7, 2-8 (2-9, 2-10), 6-2 (6-3). | |
| * - H. Moritz, Geodetic Reference System 1980, J. Geodesy 54(3), 395-405 | | * - H. Moritz, Geodetic Reference System 1980, J. Geodesy 54(3), 395-405 | |
| * (1980) http://dx.doi.org/10.1007/BF02521480 | | * (1980) http://dx.doi.org/10.1007/BF02521480 | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-NormalGravity.cpp | | * \include example-NormalGravity.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT NormalGravity { | | class GEOGRAPHICLIB_EXPORT NormalGravity { | |
| private: | | private: | |
| static const int maxit_ = 10; | | static const int maxit_ = 10; | |
| typedef Math::real real; | | typedef Math::real real; | |
| friend class GravityModel; | | friend class GravityModel; | |
| real _a, _GM, _omega, _f, _J2, _omega2, _aomega2; | | real _a, _GM, _omega, _f, _J2, _omega2, _aomega2; | |
| real _e2, _ep2, _b, _E, _U0, _gammae, _gammap, _q0, _m, _k, _fstar; | | real _e2, _ep2, _b, _E, _U0, _gammae, _gammap, _q0, _m, _k, _fstar; | |
| Geocentric _earth; | | Geocentric _earth; | |
| static Math::real qf(real ep2) throw(); | | static Math::real qf(real ep2) throw(); | |
| static Math::real qpf(real ep2) throw(); | | static Math::real qpf(real ep2) throw(); | |
| Math::real Jn(int n) const throw(); | | Math::real Jn(int n) const throw(); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| OSGB.hpp | | OSGB.hpp | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| * Guide to the National Grid</a> | | * Guide to the National Grid</a> | |
| * | | * | |
| * \b WARNING: the latitudes and longitudes for the Ordnance Survey grid | | * \b WARNING: the latitudes and longitudes for the Ordnance Survey grid | |
| * system do not use the WGS84 datum. Do not use the values returned by
this | | * system do not use the WGS84 datum. Do not use the values returned by
this | |
| * class in the UTMUPS, MGRS, or Geoid classes without first converting t
he | | * class in the UTMUPS, MGRS, or Geoid classes without first converting t
he | |
| * datum (and vice versa). | | * datum (and vice versa). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-OSGB.cpp | | * \include example-OSGB.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT OSGB { | | class GEOGRAPHICLIB_EXPORT OSGB { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const std::string letters_; | | static const std::string letters_; | |
| static const std::string digits_; | | static const std::string digits_; | |
| static const TransverseMercator OSGBTM_; | | static const TransverseMercator OSGBTM_; | |
| static real northoffset_; | | static real northoffset_; | |
| static bool init_; | | static bool init_; | |
| enum { | | enum { | |
| base_ = 10, | | base_ = 10, | |
| tile_ = 100000, | | tile_ = 100000, | |
| | | | |
| skipping to change at line 209 | | skipping to change at line 209 | |
| | | | |
| /// \cond SKIP | | /// \cond SKIP | |
| /** | | /** | |
| * <b>DEPRECATED</b> | | * <b>DEPRECATED</b> | |
| * @return \e r the inverse flattening of the Airy 1830 ellipsoid. | | * @return \e r the inverse flattening of the Airy 1830 ellipsoid. | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| static Math::real InverseFlattening() throw() { return 1/Flattening();
} | | static Math::real InverseFlattening() throw() { return 1/Flattening();
} | |
| /// \endcond | | /// \endcond | |
| | | | |
| /** | | /** | |
|
| * @return \e k0 central scale for the OSGB projection (0.9996012717). | | * @return \e k0 central scale for the OSGB projection (0.9996012717... | |
| | | ). | |
| | | * | |
| | | * C. J. Mugnier, Grids & Datums, PE&RS, Oct. 2003, states that | |
| | | * this is defined as 10<sup>9.9998268−10</sup>. | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| static Math::real CentralScale() throw() | | static Math::real CentralScale() throw() | |
|
| { return real(0.9996012717L); } | | { return std::pow(real(10), real(9998268 - 10000000) / real(10000000));
} | |
| | | | |
| /** | | /** | |
| * @return latitude of the origin for the OSGB projection (49 degrees). | | * @return latitude of the origin for the OSGB projection (49 degrees). | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| static Math::real OriginLatitude() throw() { return real(49); } | | static Math::real OriginLatitude() throw() { return real(49); } | |
| | | | |
| /** | | /** | |
| * @return longitude of the origin for the OSGB projection (−2 | | * @return longitude of the origin for the OSGB projection (−2 | |
| * degrees). | | * degrees). | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| | | | |
End of changes. 3 change blocks. |
| 3 lines changed or deleted | | 7 lines changed or added | |
|
| PolarStereographic.hpp | | PolarStereographic.hpp | |
| | | | |
| skipping to change at line 32 | | skipping to change at line 32 | |
| * <a href="http://pubs.er.usgs.gov/usgspubs/pp/pp1395"> Map Projection
s: A | | * <a href="http://pubs.er.usgs.gov/usgspubs/pp/pp1395"> Map Projection
s: A | |
| * Working Manual</a>, USGS Professional Paper 1395 (1987), | | * Working Manual</a>, USGS Professional Paper 1395 (1987), | |
| * pp. 160--163. | | * pp. 160--163. | |
| * | | * | |
| * This is a straightforward implementation of the equations in Snyder ex
cept | | * This is a straightforward implementation of the equations in Snyder ex
cept | |
| * that Newton's method is used to invert the projection. | | * that Newton's method is used to invert the projection. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-PolarStereographic.cpp | | * \include example-PolarStereographic.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT PolarStereographic { | | class GEOGRAPHICLIB_EXPORT PolarStereographic { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| // _Cx used to be _C but g++ 3.4 has a macro of that name | | // _Cx used to be _C but g++ 3.4 has a macro of that name | |
| real _a, _f, _e2, _e, _e2m, _Cx, _c; | | real _a, _f, _e2, _e, _e2m, _Cx, _c; | |
| real _k0; | | real _k0; | |
| static const real tol_; | | static const real tol_; | |
| static const real overflow_; | | static const real overflow_; | |
| static const int numit_ = 5; | | static const int numit_ = 5; | |
| // tan(x) for x in [-pi/2, pi/2] ensuring that the sign is right | | // tan(x) for x in [-pi/2, pi/2] ensuring that the sign is right | |
| static inline real tanx(real x) throw() { | | static inline real tanx(real x) throw() { | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| PolygonArea.hpp | | PolygonArea.hpp | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 55 | |
| * There's an option to treat the points as defining a polyline instead o
f a | | * There's an option to treat the points as defining a polyline instead o
f a | |
| * polygon; in that case, only the perimeter is computed. | | * polygon; in that case, only the perimeter is computed. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-PolygonArea.cpp | | * \include example-PolygonArea.cpp | |
| * | | * | |
| * <a href="Planimeter.1.html">Planimeter</a> is a command-line utility | | * <a href="Planimeter.1.html">Planimeter</a> is a command-line utility | |
| * providing access to the functionality of PolygonArea. | | * providing access to the functionality of PolygonArea. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT PolygonArea { | | class GEOGRAPHICLIB_EXPORT PolygonArea { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| Geodesic _earth; | | Geodesic _earth; | |
| real _area0; // Full ellipsoid area | | real _area0; // Full ellipsoid area | |
| bool _polyline; // Assume polyline (don't close and skip ar
ea) | | bool _polyline; // Assume polyline (don't close and skip ar
ea) | |
| unsigned _mask; | | unsigned _mask; | |
| unsigned _num; | | unsigned _num; | |
| int _crossings; | | int _crossings; | |
| Accumulator<real> _areasum, _perimetersum; | | Accumulator<real> _areasum, _perimetersum; | |
| real _lat0, _lon0, _lat1, _lon1; | | real _lat0, _lon0, _lat1, _lon1; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| SphericalEngine.hpp | | SphericalEngine.hpp | |
| | | | |
| skipping to change at line 40 | | skipping to change at line 40 | |
| * This serves as the backend to SphericalHarmonic, SphericalHarmonic1, a
nd | | * This serves as the backend to SphericalHarmonic, SphericalHarmonic1, a
nd | |
| * SphericalHarmonic2. Typically end-users will not have to access this | | * SphericalHarmonic2. Typically end-users will not have to access this | |
| * class directly. | | * class directly. | |
| * | | * | |
| * See SphericalEngine.cpp for more information on the implementation. | | * See SphericalEngine.cpp for more information on the implementation. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-SphericalEngine.cpp | | * \include example-SphericalEngine.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT SphericalEngine { | | class GEOGRAPHICLIB_EXPORT SphericalEngine { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| // A table of the square roots of integers | | // A table of the square roots of integers | |
| static std::vector<real> root_; | | static std::vector<real> root_; | |
| friend class CircularEngine; // CircularEngine needs access to root_, s
cale_ | | friend class CircularEngine; // CircularEngine needs access to root_, s
cale_ | |
| // An internal scaling of the coefficients to avoid overflow in | | // An internal scaling of the coefficients to avoid overflow in | |
| // intermediate calculations. | | // intermediate calculations. | |
| static const real scale_; | | static const real scale_; | |
| // Move latitudes near the pole off the axis by this amount. | | // Move latitudes near the pole off the axis by this amount. | |
| static const real eps_; | | static const real eps_; | |
| | | | |
| skipping to change at line 91 | | skipping to change at line 91 | |
| * | | * | |
| * This packages up the \e C, \e S coefficients and information about h
ow | | * This packages up the \e C, \e S coefficients and information about h
ow | |
| * the coefficients are stored into a single structure. This allows a | | * the coefficients are stored into a single structure. This allows a | |
| * vector of type SphericalEngine::coeff to be passed to | | * vector of type SphericalEngine::coeff to be passed to | |
| * SphericalEngine::Value. This class also includes functions to aid | | * SphericalEngine::Value. This class also includes functions to aid | |
| * indexing into \e C and \e S. | | * indexing into \e C and \e S. | |
| * | | * | |
| * The storage layout of the coefficients is documented in | | * The storage layout of the coefficients is documented in | |
| * SphericalHarmonic and SphericalHarmonic::SphericalHarmonic. | | * SphericalHarmonic and SphericalHarmonic::SphericalHarmonic. | |
| **********************************************************************
/ | | **********************************************************************
/ | |
|
| class GEOGRAPHIC_EXPORT coeff { | | class GEOGRAPHICLIB_EXPORT coeff { | |
| private: | | private: | |
| int _Nx, _nmx, _mmx; | | int _Nx, _nmx, _mmx; | |
| std::vector<real>::const_iterator _Cnm; | | std::vector<real>::const_iterator _Cnm; | |
| std::vector<real>::const_iterator _Snm; | | std::vector<real>::const_iterator _Snm; | |
| public: | | public: | |
| /** | | /** | |
| * A default constructor | | * A default constructor | |
| ********************************************************************
**/ | | ********************************************************************
**/ | |
| coeff() | | coeff() | |
| : _Nx(-1) | | : _Nx(-1) | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| SphericalHarmonic.hpp | | SphericalHarmonic.hpp | |
| | | | |
| skipping to change at line 65 | | skipping to change at line 65 | |
| * summation and the recursive computation of very high degree and orde
r | | * summation and the recursive computation of very high degree and orde
r | |
| * normalised associated Legendre functions, J. Geodesy 76(5), | | * normalised associated Legendre functions, J. Geodesy 76(5), | |
| * 279--299 (2002). | | * 279--299 (2002). | |
| * - C. C. Tscherning and K. Poder, Some geodetic applications of Clensha
w | | * - C. C. Tscherning and K. Poder, Some geodetic applications of Clensha
w | |
| * summation, Boll. Geod. Sci. Aff. 41(4), 349--375 (1982). | | * summation, Boll. Geod. Sci. Aff. 41(4), 349--375 (1982). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-SphericalHarmonic.cpp | | * \include example-SphericalHarmonic.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT SphericalHarmonic { | | class GEOGRAPHICLIB_EXPORT SphericalHarmonic { | |
| public: | | public: | |
| /** | | /** | |
| * Supported normalizations for the associated Legendre polynomials. | | * Supported normalizations for the associated Legendre polynomials. | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| enum normalization { | | enum normalization { | |
| /** | | /** | |
| * Fully normalized associated Legendre polynomials. | | * Fully normalized associated Legendre polynomials. | |
| * | | * | |
| * These are defined by <i>P</i><sub><i>nm</i></sub><sup>full</sup>(\
e z) | | * These are defined by <i>P</i><sub><i>nm</i></sub><sup>full</sup>(\
e z) | |
| * = (−1)<sup><i>m</i></sup> sqrt(\e k (2\e n + 1) (\e n &minus
; \e | | * = (−1)<sup><i>m</i></sup> sqrt(\e k (2\e n + 1) (\e n &minus
; \e | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| SphericalHarmonic1.hpp | | SphericalHarmonic1.hpp | |
| | | | |
| skipping to change at line 31 | | skipping to change at line 31 | |
| * \brief Spherical harmonic series with a correction to the coefficients | | * \brief Spherical harmonic series with a correction to the coefficients | |
| * | | * | |
| * This classes is similar to SphericalHarmonic, except that the coeffici
ents | | * This classes is similar to SphericalHarmonic, except that the coeffici
ents | |
| * \e C<sub>\e nm</sub> are replaced by \e C<sub>\e nm</sub> + \e tau | | * \e C<sub>\e nm</sub> are replaced by \e C<sub>\e nm</sub> + \e tau | |
| * C'<sub>\e nm</sub> (and similarly for \e S<sub>\e nm</sub>). | | * C'<sub>\e nm</sub> (and similarly for \e S<sub>\e nm</sub>). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-SphericalHarmonic1.cpp | | * \include example-SphericalHarmonic1.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT SphericalHarmonic1 { | | class GEOGRAPHICLIB_EXPORT SphericalHarmonic1 { | |
| public: | | public: | |
| /** | | /** | |
| * Supported normalizations for associate Legendre polynomials. | | * Supported normalizations for associate Legendre polynomials. | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| enum normalization { | | enum normalization { | |
| /** | | /** | |
| * Fully normalized associated Legendre polynomials. See | | * Fully normalized associated Legendre polynomials. See | |
| * SphericalHarmonic::FULL for documentation. | | * SphericalHarmonic::FULL for documentation. | |
| * | | * | |
| * @hideinitializer | | * @hideinitializer | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| SphericalHarmonic2.hpp | | SphericalHarmonic2.hpp | |
| | | | |
| skipping to change at line 34 | | skipping to change at line 34 | |
| * \e C<sub>\e nm</sub> are replaced by \e C<sub>\e nm</sub> + \e tau' | | * \e C<sub>\e nm</sub> are replaced by \e C<sub>\e nm</sub> + \e tau' | |
| * C'<sub>\e nm</sub> + \e tau'' C''<sub>\e nm</sub> (and similarly for \
e | | * C'<sub>\e nm</sub> + \e tau'' C''<sub>\e nm</sub> (and similarly for \
e | |
| * S<sub>\e nm</sub>). | | * S<sub>\e nm</sub>). | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-SphericalHarmonic2.cpp | | * \include example-SphericalHarmonic2.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
| // Don't include the GEOGRPAHIC_EXPORT because this header-only class isn
't | | // Don't include the GEOGRPAHIC_EXPORT because this header-only class isn
't | |
| // used by any other classes in the library. | | // used by any other classes in the library. | |
|
| class /*GEOGRAPHIC_EXPORT*/ SphericalHarmonic2 { | | class /*GEOGRAPHICLIB_EXPORT*/ SphericalHarmonic2 { | |
| public: | | public: | |
| /** | | /** | |
| * Supported normalizations for associate Legendre polynomials. | | * Supported normalizations for associate Legendre polynomials. | |
| **********************************************************************
/ | | **********************************************************************
/ | |
| enum normalization { | | enum normalization { | |
| /** | | /** | |
| * Fully normalized associated Legendre polynomials. See | | * Fully normalized associated Legendre polynomials. See | |
| * SphericalHarmonic::FULL for documentation. | | * SphericalHarmonic::FULL for documentation. | |
| * | | * | |
| * @hideinitializer | | * @hideinitializer | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| TransverseMercator.hpp | | TransverseMercator.hpp | |
| | | | |
| skipping to change at line 79 | | skipping to change at line 79 | |
| * See \ref transversemercator for a discussion of this projection. | | * See \ref transversemercator for a discussion of this projection. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-TransverseMercator.cpp | | * \include example-TransverseMercator.cpp | |
| * | | * | |
| * <a href="TransverseMercatorProj.1.html">TransverseMercatorProj</a> is
a | | * <a href="TransverseMercatorProj.1.html">TransverseMercatorProj</a> is
a | |
| * command-line utility providing access to the functionality of | | * command-line utility providing access to the functionality of | |
| * TransverseMercator and TransverseMercatorExact. | | * TransverseMercator and TransverseMercatorExact. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT TransverseMercator { | | class GEOGRAPHICLIB_EXPORT TransverseMercator { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const int maxpow_ = GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER; | | static const int maxpow_ = GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER; | |
| static const real tol_; | | static const real tol_; | |
| static const real overflow_; | | static const real overflow_; | |
| static const int numit_ = 5; | | static const int numit_ = 5; | |
| real _a, _f, _k0, _e2, _e, _e2m, _c, _n; | | real _a, _f, _k0, _e2, _e, _e2m, _c, _n; | |
| // _alp[0] and _bet[0] unused | | // _alp[0] and _bet[0] unused | |
| real _a1, _b1, _alp[maxpow_ + 1], _bet[maxpow_ + 1]; | | real _a1, _b1, _alp[maxpow_ + 1], _bet[maxpow_ + 1]; | |
| // tan(x) for x in [-pi/2, pi/2] ensuring that the sign is right | | // tan(x) for x in [-pi/2, pi/2] ensuring that the sign is right | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| TransverseMercatorExact.hpp | | TransverseMercatorExact.hpp | |
| | | | |
| skipping to change at line 79 | | skipping to change at line 79 | |
| * See \ref transversemercator for a discussion of this projection. | | * See \ref transversemercator for a discussion of this projection. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-TransverseMercatorExact.cpp | | * \include example-TransverseMercatorExact.cpp | |
| * | | * | |
| * <a href="TransverseMercatorProj.1.html">TransverseMercatorProj</a> is
a | | * <a href="TransverseMercatorProj.1.html">TransverseMercatorProj</a> is
a | |
| * command-line utility providing access to the functionality of | | * command-line utility providing access to the functionality of | |
| * TransverseMercator and TransverseMercatorExact. | | * TransverseMercator and TransverseMercatorExact. | |
| **********************************************************************/ | | **********************************************************************/ | |
| | | | |
|
| class GEOGRAPHIC_EXPORT TransverseMercatorExact { | | class GEOGRAPHICLIB_EXPORT TransverseMercatorExact { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const real tol_; | | static const real tol_; | |
| static const real tol1_; | | static const real tol1_; | |
| static const real tol2_; | | static const real tol2_; | |
| static const real taytol_; | | static const real taytol_; | |
| static const real overflow_; | | static const real overflow_; | |
| static const int numit_ = 10; | | static const int numit_ = 10; | |
| real _a, _f, _k0, _mu, _mv, _e; | | real _a, _f, _k0, _mu, _mv, _e; | |
| bool _extendp; | | bool _extendp; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| UTMUPS.hpp | | UTMUPS.hpp | |
| | | | |
| skipping to change at line 61 | | skipping to change at line 61 | |
| * <a href="http://earth-info.nga.mil/GandG/geotrans/index.html">geotrans
</a> | | * <a href="http://earth-info.nga.mil/GandG/geotrans/index.html">geotrans
</a> | |
| * also provides conversions to and from UTM and UPS. Version 2.4.2 (and | | * also provides conversions to and from UTM and UPS. Version 2.4.2 (and | |
| * earlier) suffers from some drawbacks: | | * earlier) suffers from some drawbacks: | |
| * - Inconsistent rules are used to determine the whether a particular UT
M or | | * - Inconsistent rules are used to determine the whether a particular UT
M or | |
| * UPS coordinate is legal. A more systematic approach is taken here. | | * UPS coordinate is legal. A more systematic approach is taken here. | |
| * - The underlying projections are not very accurately implemented. | | * - The underlying projections are not very accurately implemented. | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-UTMUPS.cpp | | * \include example-UTMUPS.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT UTMUPS { | | class GEOGRAPHICLIB_EXPORT UTMUPS { | |
| private: | | private: | |
| typedef Math::real real; | | typedef Math::real real; | |
| static const real falseeasting_[4]; | | static const real falseeasting_[4]; | |
| static const real falsenorthing_[4]; | | static const real falsenorthing_[4]; | |
| static const real mineasting_[4]; | | static const real mineasting_[4]; | |
| static const real maxeasting_[4]; | | static const real maxeasting_[4]; | |
| static const real minnorthing_[4]; | | static const real minnorthing_[4]; | |
| static const real maxnorthing_[4]; | | static const real maxnorthing_[4]; | |
| static const int epsg01N = 32601; // EPSG code for UTM 01N | | static const int epsg01N = 32601; // EPSG code for UTM 01N | |
| static const int epsg60N = 32660; // EPSG code for UTM 60N | | static const int epsg60N = 32660; // EPSG code for UTM 60N | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| Utility.hpp | | Utility.hpp | |
| | | | |
| skipping to change at line 33 | | skipping to change at line 33 | |
| #endif | | #endif | |
| | | | |
| namespace GeographicLib { | | namespace GeographicLib { | |
| | | | |
| /** | | /** | |
| * \brief Some utility routines for %GeographicLib | | * \brief Some utility routines for %GeographicLib | |
| * | | * | |
| * Example of use: | | * Example of use: | |
| * \include example-Utility.cpp | | * \include example-Utility.cpp | |
| **********************************************************************/ | | **********************************************************************/ | |
|
| class GEOGRAPHIC_EXPORT Utility { | | class GEOGRAPHICLIB_EXPORT Utility { | |
| private: | | private: | |
| static bool gregorian(int y, int m, int d) { | | static bool gregorian(int y, int m, int d) { | |
| // The original cut over to the Gregorian calendar in Pope Gregory XI
II's | | // The original cut over to the Gregorian calendar in Pope Gregory XI
II's | |
| // time had 1582-10-04 followed by 1582-10-15. Here we implement the | | // time had 1582-10-04 followed by 1582-10-15. Here we implement the | |
| // switch over used by the English-speaking world where 1752-09-02 wa
s | | // switch over used by the English-speaking world where 1752-09-02 wa
s | |
| // followed by 1752-09-14. We also assume that the year always begins | | // followed by 1752-09-14. We also assume that the year always begins | |
| // with January 1, whereas in reality it often was reckoned to begin
in | | // with January 1, whereas in reality it often was reckoned to begin
in | |
| // March. | | // March. | |
| return 100 * (100 * y + m) + d >= 17520914; // or 15821004 | | return 100 * (100 * y + m) + d >= 17520914; // or 15821004 | |
| } | | } | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|