Rename haversine to haversine_01
This commit is contained in:
24
haversine_01/cpp/haversine.cpp
Normal file
24
haversine_01/cpp/haversine.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "haversine.h"
|
||||
#include <math.h>
|
||||
|
||||
#define PI 3.14159265358979323845
|
||||
#define SQUARE(X) ((X) * (X))
|
||||
|
||||
double radians(double degrees);
|
||||
|
||||
double haversine_of_degrees(double x0, double y0, double x1, double y1,
|
||||
double radius) {
|
||||
double dy = radians(y1 - y0);
|
||||
double dx = radians(x1 - x0);
|
||||
y0 = radians(y0);
|
||||
y1 = radians(y1);
|
||||
|
||||
double root_term =
|
||||
SQUARE(sin(dy / 2.0)) + cos(y0) * cos(y1) * SQUARE(sin(dx / 2.0));
|
||||
|
||||
double result = 2.0 * radius * asin(sqrt(root_term));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
double radians(double degrees) { return (degrees * PI) / 180.0; }
|
||||
Reference in New Issue
Block a user