Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
29
Task/Haversine-formula/Sidef/haversine-formula.sidef
Normal file
29
Task/Haversine-formula/Sidef/haversine-formula.sidef
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
class EarthPoint(lat, lon) {
|
||||
|
||||
const earth_radius = 6371 # mean earth radius
|
||||
const radian_ratio = Num.pi/180
|
||||
|
||||
# accessors for radians
|
||||
method latR { self.lat * radian_ratio }
|
||||
method lonR { self.lon * radian_ratio }
|
||||
|
||||
method haversine_dist(EarthPoint p) {
|
||||
var arc = EarthPoint(
|
||||
self.lat - p.lat,
|
||||
self.lon - p.lon,
|
||||
)
|
||||
|
||||
var a = Math.sum(
|
||||
(arc.latR / 2).sin**2,
|
||||
(arc.lonR / 2).sin**2 *
|
||||
self.latR.cos * p.latR.cos
|
||||
)
|
||||
|
||||
earth_radius * a.sqrt.asin * 2
|
||||
}
|
||||
}
|
||||
|
||||
var BNA = EarthPoint.new(lat: 36.12, lon: -86.67)
|
||||
var LAX = EarthPoint.new(lat: 33.94, lon: -118.4)
|
||||
|
||||
say BNA.haversine_dist(LAX) #=> 2886.444442837983299747157823945746716...
|
||||
Loading…
Add table
Add a link
Reference in a new issue