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 | |||
Config.h | Config.h | |||
---|---|---|---|---|
#define GEOGRAPHICLIB_VERSION_MAJOR 1 | #define GEOGRAPHICLIB_VERSION_MAJOR 1 | |||
#define GEOGRAPHICLIB_VERSION_MINOR 33 | #define GEOGRAPHICLIB_VERSION_MINOR 34 | |||
#define GEOGRAPHICLIB_VERSION_PATCH 0 | #define GEOGRAPHICLIB_VERSION_PATCH 0 | |||
#define HAVE_LONG_DOUBLE 1 | #define HAVE_LONG_DOUBLE 1 | |||
#define GEOGRAPHICLIB_VERSION_STRING "1.33" | #define GEOGRAPHICLIB_VERSION_STRING "1.34" | |||
/* # undef WORDS_BIGENDIAN */ | /* # undef WORDS_BIGENDIAN */ | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 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 | |||
Gnomonic.hpp | Gnomonic.hpp | |||
---|---|---|---|---|
skipping to change at line 101 | skipping to change at line 101 | |||
* generalizes the spherical great circle to a geodesic. | * generalizes the spherical great circle to a geodesic. | |||
* | * | |||
* Example of use: | * Example of use: | |||
* \include example-Gnomonic.cpp | * \include example-Gnomonic.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 Gnomonic { | class GEOGRAPHICLIB_EXPORT Gnomonic { | |||
private: | private: | |||
typedef Math::real real; | typedef Math::real real; | |||
Geodesic _earth; | Geodesic _earth; | |||
real _a, _f; | real _a, _f; | |||
static const real eps0_; | static const real eps0_; | |||
static const real eps_; | static const real eps_; | |||
static const int numit_ = 10; | static const int numit_ = 10; | |||
public: | public: | |||
/** | /** | |||
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 | |||