Signed-off-by: Asbjørn Sloth Tønnesen <[email protected]>
---
contrib/earthdistance/earthdistance.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/contrib/earthdistance/earthdistance.c
b/contrib/earthdistance/earthdistance.c
index 6bbebdf..432309c 100644
--- a/contrib/earthdistance/earthdistance.c
+++ b/contrib/earthdistance/earthdistance.c
@@ -6,16 +6,18 @@
#include "utils/geo_decls.h" /* for Point */
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
+#ifndef M_TAU
+#define M_TAU 6.28318530717958647693
#endif
+#ifndef M_PI
+#define M_PI (M_TAU / 2.0)
+#endif
PG_MODULE_MAGIC;
/* Earth's radius is in statute miles. */
static const double EARTH_RADIUS = 3958.747716;
-static const double TWO_PI = 2.0 * M_PI;
/******************************************************
@@ -30,7 +32,7 @@ static const double TWO_PI = 2.0 * M_PI;
static double
degtorad(double degrees)
{
- return (degrees / 360.0) * TWO_PI;
+ return (degrees / 360.0) * M_TAU;
}
/******************************************************
@@ -67,7 +69,7 @@ geo_distance_internal(Point *pt1, Point *pt2)
/* compute difference in longitudes - want < 180 degrees */
longdiff = fabs(long1 - long2);
if (longdiff > M_PI)
- longdiff = TWO_PI - longdiff;
+ longdiff = M_TAU - longdiff;
sino = sqrt(sin(fabs(lat1 - lat2) / 2.) * sin(fabs(lat1 - lat2) / 2.) +
cos(lat1) * cos(lat2) * sin(longdiff / 2.) *
sin(longdiff / 2.));
--
2.0.0
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers