double code(double R, double lambda1, double lambda2, double phi1, double phi2) {
return acos(((sin(phi1) * sin(phi2)) + ((cos(phi1) * cos(phi2)) * cos((lambda1 - lambda2))))) * R;
}
↓
double code(double R, double lambda1, double lambda2, double phi1, double phi2) {
double t_0 = cos(phi1) * cos(phi2);
double t_1 = sin(lambda1) * sin(lambda2);
double t_2 = sin(phi1) * sin(phi2);
double t_3 = acos((t_2 + (t_0 * cos((lambda1 - lambda2))))) * R;
double tmp;
if (t_3 <= -2e-308) {
tmp = R * acos((t_2 + (t_0 * fma(cos(lambda2), cos(lambda1), expm1(log1p(t_1))))));
} else if (t_3 <= 0.0) {
tmp = (lambda2 * R) - (lambda1 * R);
} else {
tmp = R * acos((t_2 + (t_0 * (t_1 + (cos(lambda2) * cos(lambda1))))));
}
return tmp;
}
function code(R, lambda1, lambda2, phi1, phi2)
return Float64(acos(Float64(Float64(sin(phi1) * sin(phi2)) + Float64(Float64(cos(phi1) * cos(phi2)) * cos(Float64(lambda1 - lambda2))))) * R)
end
↓
function code(R, lambda1, lambda2, phi1, phi2)
t_0 = Float64(cos(phi1) * cos(phi2))
t_1 = Float64(sin(lambda1) * sin(lambda2))
t_2 = Float64(sin(phi1) * sin(phi2))
t_3 = Float64(acos(Float64(t_2 + Float64(t_0 * cos(Float64(lambda1 - lambda2))))) * R)
tmp = 0.0
if (t_3 <= -2e-308)
tmp = Float64(R * acos(Float64(t_2 + Float64(t_0 * fma(cos(lambda2), cos(lambda1), expm1(log1p(t_1)))))));
elseif (t_3 <= 0.0)
tmp = Float64(Float64(lambda2 * R) - Float64(lambda1 * R));
else
tmp = Float64(R * acos(Float64(t_2 + Float64(t_0 * Float64(t_1 + Float64(cos(lambda2) * cos(lambda1)))))));
end
return tmp
end
code[R_, lambda1_, lambda2_, phi1_, phi2_] := N[(N[ArcCos[N[(N[(N[Sin[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] + N[(N[(N[Cos[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * R), $MachinePrecision]
↓
code[R_, lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Sin[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Sin[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[ArcCos[N[(t$95$2 + N[(t$95$0 * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * R), $MachinePrecision]}, If[LessEqual[t$95$3, -2e-308], N[(R * N[ArcCos[N[(t$95$2 + N[(t$95$0 * N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision] + N[(Exp[N[Log[1 + t$95$1], $MachinePrecision]] - 1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$3, 0.0], N[(N[(lambda2 * R), $MachinePrecision] - N[(lambda1 * R), $MachinePrecision]), $MachinePrecision], N[(R * N[ArcCos[N[(t$95$2 + N[(t$95$0 * N[(t$95$1 + N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]]]]]]