Config.h | Config.h | |||
---|---|---|---|---|
#define GEOGRAPHICLIB_VERSION_MAJOR 1 | #define GEOGRAPHICLIB_VERSION_MAJOR 1 | |||
#define GEOGRAPHICLIB_VERSION_MINOR 39 | #define GEOGRAPHICLIB_VERSION_MINOR 39 | |||
#define GEOGRAPHICLIB_VERSION_PATCH 0 | #define GEOGRAPHICLIB_VERSION_PATCH 0 | |||
#define GEOGRAPHICLIB_HAVE_LONG_DOUBLE 1 | #define GEOGRAPHICLIB_HAVE_LONG_DOUBLE 1 | |||
#define GEOGRAPHICLIB_VERSION_STRING "1.40" | #define GEOGRAPHICLIB_VERSION_STRING "1.41" | |||
/* # undef GEOGRAPHICLIB_WORDS_BIGENDIAN */ | /* # undef GEOGRAPHICLIB_WORDS_BIGENDIAN */ | |||
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 44 | skipping to change at line 44 | |||
* A compile-time assert. Use C++11 static_assert, if available. | * A compile-time assert. Use C++11 static_assert, if available. | |||
**********************************************************************/ | **********************************************************************/ | |||
#if !defined(GEOGRAPHICLIB_STATIC_ASSERT) | #if !defined(GEOGRAPHICLIB_STATIC_ASSERT) | |||
# if __cplusplus >= 201103 || defined(__GXX_EXPERIMENTAL_CXX0X__) | # if __cplusplus >= 201103 || defined(__GXX_EXPERIMENTAL_CXX0X__) | |||
# define GEOGRAPHICLIB_STATIC_ASSERT static_assert | # define GEOGRAPHICLIB_STATIC_ASSERT static_assert | |||
# elif defined(_MSC_VER) && _MSC_VER >= 1600 | # elif defined(_MSC_VER) && _MSC_VER >= 1600 | |||
// For reference, here is a table of Visual Studio and _MSC_VER | // For reference, here is a table of Visual Studio and _MSC_VER | |||
// correspondences: | // correspondences: | |||
// | // | |||
// _MSC_VER Visual Studio | // _MSC_VER Visual Studio | |||
// 1100 vc5 | ||||
// 1200 vc6 | ||||
// 1300 vc7 | // 1300 vc7 | |||
// 1311 vc7.1 (2003) | // 1310 vc7.1 (2003) | |||
// 1400 vc8 (2005) | // 1400 vc8 (2005) | |||
// 1500 vc9 (2008) | // 1500 vc9 (2008) | |||
// 1600 vc10 (2010) | // 1600 vc10 (2010) | |||
// 1700 vc11 (2012) | // 1700 vc11 (2012) | |||
// 1800 vc12 (2013) | // 1800 vc12 (2013) | |||
// 1900 vc14 | // 1900 vc14 (2015) | |||
# define GEOGRAPHICLIB_STATIC_ASSERT static_assert | # define GEOGRAPHICLIB_STATIC_ASSERT static_assert | |||
# else | # else | |||
# define GEOGRAPHICLIB_STATIC_ASSERT(cond,reason) \ | # define GEOGRAPHICLIB_STATIC_ASSERT(cond,reason) \ | |||
{ enum{ GEOGRAPHICLIB_STATIC_ASSERT_ENUM = 1/int(cond) }; } | { enum{ GEOGRAPHICLIB_STATIC_ASSERT_ENUM = 1/int(cond) }; } | |||
# endif | # endif | |||
#endif | #endif | |||
#if defined(_MSC_VER) && defined(GEOGRAPHICLIB_SHARED_LIB) && \ | #if defined(_MSC_VER) && defined(GEOGRAPHICLIB_SHARED_LIB) && \ | |||
GEOGRAPHICLIB_SHARED_LIB | GEOGRAPHICLIB_SHARED_LIB | |||
# if GEOGRAPHICLIB_SHARED_LIB > 1 | # if GEOGRAPHICLIB_SHARED_LIB > 1 | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||
OSGB.hpp | OSGB.hpp | |||
---|---|---|---|---|
/** | /** | |||
* \file OSGB.hpp | * \file OSGB.hpp | |||
* \brief Header for GeographicLib::OSGB class | * \brief Header for GeographicLib::OSGB class | |||
* | * | |||
* Copyright (c) Charles Karney (2010-2014) <charles@karney.com> and licens ed | * Copyright (c) Charles Karney (2010-2015) <charles@karney.com> and licens ed | |||
* under the MIT/X11 License. For more information, see | * under the MIT/X11 License. For more information, see | |||
* http://geographiclib.sourceforge.net/ | * http://geographiclib.sourceforge.net/ | |||
**********************************************************************/ | **********************************************************************/ | |||
#if !defined(GEOGRAPHICLIB_OSGB_HPP) | #if !defined(GEOGRAPHICLIB_OSGB_HPP) | |||
#define GEOGRAPHICLIB_OSGB_HPP 1 | #define GEOGRAPHICLIB_OSGB_HPP 1 | |||
#include <GeographicLib/Constants.hpp> | #include <GeographicLib/Constants.hpp> | |||
#include <GeographicLib/TransverseMercator.hpp> | #include <GeographicLib/TransverseMercator.hpp> | |||
skipping to change at line 185 | skipping to change at line 185 | |||
real& x, real& y, int& prec, | real& x, real& y, int& prec, | |||
bool centerp = true); | bool centerp = true); | |||
/** \name Inspector functions | /** \name Inspector functions | |||
********************************************************************** / | ********************************************************************** / | |||
///@{ | ///@{ | |||
/** | /** | |||
* @return \e a the equatorial radius of the Airy 1830 ellipsoid (meter s). | * @return \e a the equatorial radius of the Airy 1830 ellipsoid (meter s). | |||
* | * | |||
* This is 20923713 ft converted to meters using the rule 1 ft = | * This is 20923713 ft converted to meters using the rule 1 ft = | |||
* 10<sup>9.48401603−10</sup> m. (The Airy 1830 value is returne | * 10<sup>9.48401603−10</sup> m. The Airy 1830 value is returned | |||
d | * because the OSGB projection is based on this ellipsoid. The convers | |||
* because the OSGB projection is based on this ellipsoid.) | ion | |||
* factor from feet to meters is the one used for the 1936 retriangulat | ||||
ion | ||||
* of Britain; see Section A.1 (p. 37) of <i>A guide to coordinate syst | ||||
ems | ||||
* in Great Britain</i>, v2.2 (Dec. 2013). | ||||
********************************************************************** / | ********************************************************************** / | |||
static Math::real MajorRadius() { | static Math::real MajorRadius() { | |||
// result is about 6377563.3960320664406 m | // result is about 6377563.3960320664406 m | |||
using std::pow; | using std::pow; | |||
return pow(real(10), real(48401603 - 100000000) / 100000000) | return pow(real(10), real(48401603 - 100000000) / 100000000) | |||
* 20923713; | * 20923713; | |||
} | } | |||
/** | /** | |||
* @return \e f the inverse flattening of the Airy 1830 ellipsoid. | * @return \e f the inverse flattening of the Airy 1830 ellipsoid. | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 9 lines changed or added | |||
Rhumb.hpp | Rhumb.hpp | |||
---|---|---|---|---|
/** | /** | |||
* \file Rhumb.hpp | * \file Rhumb.hpp | |||
* \brief Header for GeographicLib::Rhumb and GeographicLib::RhumbLine clas ses | * \brief Header for GeographicLib::Rhumb and GeographicLib::RhumbLine clas ses | |||
* | * | |||
* Copyright (c) Charles Karney (2012) <charles@karney.com> and licensed un | * Copyright (c) Charles Karney (2014-2015) <charles@karney.com> and licens | |||
der | ed | |||
* the MIT/X11 License. For more information, see | * under the MIT/X11 License. For more information, see | |||
* http://geographiclib.sourceforge.net/ | * http://geographiclib.sourceforge.net/ | |||
**********************************************************************/ | **********************************************************************/ | |||
#if !defined(GEOGRAPHICLIB_RHUMB_HPP) | #if !defined(GEOGRAPHICLIB_RHUMB_HPP) | |||
#define GEOGRAPHICLIB_RHUMB_HPP 1 | #define GEOGRAPHICLIB_RHUMB_HPP 1 | |||
#include <GeographicLib/Constants.hpp> | #include <GeographicLib/Constants.hpp> | |||
#include <GeographicLib/Ellipsoid.hpp> | #include <GeographicLib/Ellipsoid.hpp> | |||
#if !defined(GEOGRAPHICLIB_RHUMBAREA_ORDER) | #if !defined(GEOGRAPHICLIB_RHUMBAREA_ORDER) | |||
skipping to change at line 86 | skipping to change at line 86 | |||
// _R[0] unused | // _R[0] unused | |||
real _R[maxpow_ + 1]; | real _R[maxpow_ + 1]; | |||
static inline real overflow() { | static inline real overflow() { | |||
// Overflow value s.t. atan(overflow_) = pi/2 | // Overflow value s.t. atan(overflow_) = pi/2 | |||
static const real | static const real | |||
overflow = 1 / Math::sq(std::numeric_limits<real>::epsilon()); | overflow = 1 / Math::sq(std::numeric_limits<real>::epsilon()); | |||
return overflow; | return overflow; | |||
} | } | |||
static inline real tano(real x) { | static inline real tano(real x) { | |||
using std::abs; using std::tan; | using std::abs; using std::tan; | |||
// Need the volatile declaration for optimized builds on 32-bit cento | ||||
s | ||||
// with g++ 4.4.7 | ||||
GEOGRAPHICLIB_VOLATILE real y = 2 * abs(x); | ||||
return | return | |||
2 * abs(x) == Math::pi() ? (x < 0 ? - overflow() : overflow()) : | y == Math::pi() ? (x < 0 ? - overflow() : overflow()) : tan(x); | |||
tan(x); | ||||
} | } | |||
static inline real gd(real x) | static inline real gd(real x) | |||
{ using std::atan; using std::sinh; return atan(sinh(x)); } | { using std::atan; using std::sinh; return atan(sinh(x)); } | |||
// Use divided differences to determine (mu2 - mu1) / (psi2 - psi1) | // Use divided differences to determine (mu2 - mu1) / (psi2 - psi1) | |||
// accurately | // accurately | |||
// | // | |||
// Definition: Df(x,y,d) = (f(x) - f(y)) / (x - y) | // Definition: Df(x,y,d) = (f(x) - f(y)) / (x - y) | |||
// See: | // See: | |||
// W. M. Kahan and R. J. Fateman, | // W. M. Kahan and R. J. Fateman, | |||
End of changes. 3 change blocks. | ||||
5 lines changed or deleted | 8 lines changed or added | |||