summaryrefslogtreecommitdiff
path: root/boost/geometry/formulas/differential_quantities.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/formulas/differential_quantities.hpp')
-rw-r--r--boost/geometry/formulas/differential_quantities.hpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/boost/geometry/formulas/differential_quantities.hpp b/boost/geometry/formulas/differential_quantities.hpp
index 9a92f14e18..ff2ec539db 100644
--- a/boost/geometry/formulas/differential_quantities.hpp
+++ b/boost/geometry/formulas/differential_quantities.hpp
@@ -1,6 +1,6 @@
// Boost.Geometry
-// Copyright (c) 2016 Oracle and/or its affiliates.
+// Copyright (c) 2016-2017 Oracle and/or its affiliates.
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
@@ -64,8 +64,8 @@ public:
CT const c1 = 1;
CT const one_minus_f = c1 - f;
- CT const sin_bet1 = one_minus_f * sin_lat1;
- CT const sin_bet2 = one_minus_f * sin_lat2;
+ CT sin_bet1 = one_minus_f * sin_lat1;
+ CT sin_bet2 = one_minus_f * sin_lat2;
// equator
if (math::equals(sin_bet1, c0) && math::equals(sin_bet2, c0))
@@ -89,14 +89,17 @@ public:
CT const e2 = f * (c2 - f);
CT const ep2 = e2 / math::sqr(one_minus_f);
- CT const cos_bet1 = cos_lat1;
- CT const cos_bet2 = cos_lat2;
-
CT const sin_alp1 = sin(azimuth);
CT const cos_alp1 = cos(azimuth);
//CT const sin_alp2 = sin(reverse_azimuth);
CT const cos_alp2 = cos(reverse_azimuth);
+ CT cos_bet1 = cos_lat1;
+ CT cos_bet2 = cos_lat2;
+
+ normalize(sin_bet1, cos_bet1);
+ normalize(sin_bet2, cos_bet2);
+
CT sin_sig1 = sin_bet1;
CT cos_sig1 = cos_alp1 * cos_bet1;
CT sin_sig2 = sin_bet2;
@@ -112,8 +115,8 @@ public:
J12_f(sin_sig1, cos_sig1, sin_sig2, cos_sig2, cos_alp0_sqr, f) :
J12_ep_sqr(sin_sig1, cos_sig1, sin_sig2, cos_sig2, cos_alp0_sqr, ep2) ;
- CT const dn1 = math::sqrt(c1 + e2 * math::sqr(sin_lat1));
- CT const dn2 = math::sqrt(c1 + e2 * math::sqr(sin_lat2));
+ CT const dn1 = math::sqrt(c1 + ep2 * math::sqr(sin_bet1));
+ CT const dn2 = math::sqrt(c1 + ep2 * math::sqr(sin_bet2));
if (BOOST_GEOMETRY_CONDITION(EnableReducedLength))
{