(FPCore (lat1 dlat lon1 dlon) :precision binary64 (sin lat1))
(FPCore (lat1 dlat lon1 dlon) :precision binary64 (sin lat1))
double code(double lat1, double dlat, double lon1, double dlon) { return sin(lat1); }
double code(double lat1, double dlat, double lon1, double dlon) { return sin(lat1); }
real(8) function code(lat1, dlat, lon1, dlon) real(8), intent (in) :: lat1 real(8), intent (in) :: dlat real(8), intent (in) :: lon1 real(8), intent (in) :: dlon code = sin(lat1) end function
real(8) function code(lat1, dlat, lon1, dlon) real(8), intent (in) :: lat1 real(8), intent (in) :: dlat real(8), intent (in) :: lon1 real(8), intent (in) :: dlon code = sin(lat1) end function
public static double code(double lat1, double dlat, double lon1, double dlon) { return Math.sin(lat1); }
public static double code(double lat1, double dlat, double lon1, double dlon) { return Math.sin(lat1); }
def code(lat1, dlat, lon1, dlon): return math.sin(lat1)
def code(lat1, dlat, lon1, dlon): return math.sin(lat1)
function code(lat1, dlat, lon1, dlon) return sin(lat1) end
function code(lat1, dlat, lon1, dlon) return sin(lat1) end
function tmp = code(lat1, dlat, lon1, dlon) tmp = sin(lat1); end
function tmp = code(lat1, dlat, lon1, dlon) tmp = sin(lat1); end
code[lat1_, dlat_, lon1_, dlon_] := N[Sin[lat1], $MachinePrecision]
code[lat1_, dlat_, lon1_, dlon_] := N[Sin[lat1], $MachinePrecision]
\sin lat1
\sin lat1
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 1
(FPCore (lat1 dlat lon1 dlon)
:name "haversine"
:precision binary64
:pre (and (and (and (<= 1e-8 lat1) (<= lat1 1.6)) (and (<= 1e-8 dlat) (<= dlat 1.6))) (and (and (<= 1e-8 lon1) (<= lon1 3.2)) (and (<= 1e-8 dlon) (<= dlon 3.2))))
(sin lat1))