| Alternative 1 | |
|---|---|
| Accuracy | 99.7% |
| Cost | 103936 |
(FPCore (lambda1 lambda2 phi1 phi2) :precision binary64 (atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2))))))
(FPCore (lambda1 lambda2 phi1 phi2)
:precision binary64
(let* ((t_0 (* (sin lambda2) (cos lambda1))))
(atan2
(+
(* (cos phi2) (fma (- (sin lambda2)) (cos lambda1) t_0))
(* (cos phi2) (- (* (cos lambda2) (sin lambda1)) t_0)))
(-
(* (cos phi1) (sin phi2))
(*
(cos phi2)
(*
(fma (cos lambda2) (cos lambda1) (* (sin lambda1) (sin lambda2)))
(sin phi1)))))))double code(double lambda1, double lambda2, double phi1, double phi2) {
return atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
}
double code(double lambda1, double lambda2, double phi1, double phi2) {
double t_0 = sin(lambda2) * cos(lambda1);
return atan2(((cos(phi2) * fma(-sin(lambda2), cos(lambda1), t_0)) + (cos(phi2) * ((cos(lambda2) * sin(lambda1)) - t_0))), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (fma(cos(lambda2), cos(lambda1), (sin(lambda1) * sin(lambda2))) * sin(phi1)))));
}
function code(lambda1, lambda2, phi1, phi2) return atan(Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(sin(phi1) * cos(phi2)) * cos(Float64(lambda1 - lambda2))))) end
function code(lambda1, lambda2, phi1, phi2) t_0 = Float64(sin(lambda2) * cos(lambda1)) return atan(Float64(Float64(cos(phi2) * fma(Float64(-sin(lambda2)), cos(lambda1), t_0)) + Float64(cos(phi2) * Float64(Float64(cos(lambda2) * sin(lambda1)) - t_0))), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(cos(phi2) * Float64(fma(cos(lambda2), cos(lambda1), Float64(sin(lambda1) * sin(lambda2))) * sin(phi1))))) end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Sin[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]}, N[ArcTan[N[(N[(N[Cos[phi2], $MachinePrecision] * N[((-N[Sin[lambda2], $MachinePrecision]) * N[Cos[lambda1], $MachinePrecision] + t$95$0), $MachinePrecision]), $MachinePrecision] + N[(N[Cos[phi2], $MachinePrecision] * N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[lambda1], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[phi2], $MachinePrecision] * N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision] + N[(N[Sin[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\begin{array}{l}
t_0 := \sin \lambda_2 \cdot \cos \lambda_1\\
\tan^{-1}_* \frac{\cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, t_0\right) + \cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - t_0\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\mathsf{fma}\left(\cos \lambda_2, \cos \lambda_1, \sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \sin \phi_1\right)}
\end{array}
Initial program 79.9%
Simplified79.9%
[Start]79.9 | \[ \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\] |
|---|---|
*-commutative [=>]79.9 | \[ \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \phi_2 \cdot \sin \phi_1\right)} \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\] |
associate-*l* [=>]79.9 | \[ \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}}
\] |
Applied egg-rr89.5%
[Start]79.9 | \[ \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}
\] |
|---|---|
sin-diff [=>]89.5 | \[ \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}
\] |
cancel-sign-sub-inv [=>]89.5 | \[ \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(-\cos \lambda_1\right) \cdot \sin \lambda_2\right)} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}
\] |
Simplified89.5%
[Start]89.5 | \[ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(-\cos \lambda_1\right) \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}
\] |
|---|---|
cancel-sign-sub-inv [<=]89.5 | \[ \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}
\] |
Applied egg-rr99.7%
[Start]89.5 | \[ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}
\] |
|---|---|
cos-diff [=>]99.7 | \[ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}\right)}
\] |
+-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right)}\right)}
\] |
*-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \color{blue}{\cos \lambda_2 \cdot \cos \lambda_1}\right)\right)}
\] |
Applied egg-rr99.7%
[Start]99.7 | \[ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
|---|---|
*-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
prod-diff [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, -\sin \lambda_2 \cdot \cos \lambda_1\right) + \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)\right)}}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
*-commutative [<=]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, -\color{blue}{\cos \lambda_1 \cdot \sin \lambda_2}\right) + \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
fma-neg [<=]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)} + \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
distribute-lft-in [=>]99.7 | \[ \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
sub-neg [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(-\cos \lambda_1 \cdot \sin \lambda_2\right)\right)} + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
distribute-lft-in [=>]99.7 | \[ \tan^{-1}_* \frac{\color{blue}{\left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_2 \cdot \left(-\cos \lambda_1 \cdot \sin \lambda_2\right)\right)} + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
associate-+l+ [=>]99.7 | \[ \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2\right) + \left(\cos \phi_2 \cdot \left(-\cos \lambda_1 \cdot \sin \lambda_2\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)\right)}}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
Simplified99.7%
[Start]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2\right) + \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right)\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
|---|---|
*-commutative [<=]99.7 | \[ \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2} + \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right)\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
associate-+r+ [=>]99.7 | \[ \tan^{-1}_* \frac{\color{blue}{\left(\left(\sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right)\right)\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)}}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
*-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\left(\left(\sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2 + \color{blue}{\left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right)\right) \cdot \cos \phi_2}\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
distribute-rgt-out [=>]99.7 | \[ \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \left(-\sin \lambda_2\right)\right)} + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
*-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 + \color{blue}{\left(-\sin \lambda_2\right) \cdot \cos \lambda_1}\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
cancel-sign-sub-inv [<=]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \cos \lambda_1\right)} + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
*-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\color{blue}{\cos \lambda_2 \cdot \sin \lambda_1} - \sin \lambda_2 \cdot \cos \lambda_1\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
Taylor expanded in phi1 around inf 99.7%
Simplified99.7%
[Start]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \sin \lambda_2 \cdot \cos \lambda_1\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}
\] |
|---|---|
+-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \sin \lambda_2 \cdot \cos \lambda_1\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \color{blue}{\left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_2 \cdot \sin \lambda_1\right)}\right)}
\] |
*-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \sin \lambda_2 \cdot \cos \lambda_1\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \color{blue}{\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \sin \phi_1\right)}}
\] |
*-commutative [<=]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \sin \lambda_2 \cdot \cos \lambda_1\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\left(\cos \lambda_2 \cdot \cos \lambda_1 + \color{blue}{\sin \lambda_1 \cdot \sin \lambda_2}\right) \cdot \sin \phi_1\right)}
\] |
fma-def [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \sin \lambda_2 \cdot \cos \lambda_1\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\color{blue}{\mathsf{fma}\left(\cos \lambda_2, \cos \lambda_1, \sin \lambda_1 \cdot \sin \lambda_2\right)} \cdot \sin \phi_1\right)}
\] |
*-commutative [=>]99.7 | \[ \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \sin \lambda_2 \cdot \cos \lambda_1\right) + \cos \phi_2 \cdot \mathsf{fma}\left(-\sin \lambda_2, \cos \lambda_1, \sin \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\mathsf{fma}\left(\cos \lambda_2, \cos \lambda_1, \color{blue}{\sin \lambda_2 \cdot \sin \lambda_1}\right) \cdot \sin \phi_1\right)}
\] |
Final simplification99.7%
| Alternative 1 | |
|---|---|
| Accuracy | 99.7% |
| Cost | 103936 |
| Alternative 2 | |
|---|---|
| Accuracy | 99.7% |
| Cost | 91136 |
| Alternative 3 | |
|---|---|
| Accuracy | 94.6% |
| Cost | 85384 |
| Alternative 4 | |
|---|---|
| Accuracy | 94.6% |
| Cost | 84872 |
| Alternative 5 | |
|---|---|
| Accuracy | 89.1% |
| Cost | 71817 |
| Alternative 6 | |
|---|---|
| Accuracy | 88.3% |
| Cost | 71817 |
| Alternative 7 | |
|---|---|
| Accuracy | 88.3% |
| Cost | 71817 |
| Alternative 8 | |
|---|---|
| Accuracy | 89.5% |
| Cost | 71680 |
| Alternative 9 | |
|---|---|
| Accuracy | 87.4% |
| Cost | 65416 |
| Alternative 10 | |
|---|---|
| Accuracy | 83.7% |
| Cost | 65288 |
| Alternative 11 | |
|---|---|
| Accuracy | 83.7% |
| Cost | 65156 |
| Alternative 12 | |
|---|---|
| Accuracy | 83.7% |
| Cost | 58889 |
| Alternative 13 | |
|---|---|
| Accuracy | 74.3% |
| Cost | 52361 |
| Alternative 14 | |
|---|---|
| Accuracy | 79.3% |
| Cost | 52360 |
| Alternative 15 | |
|---|---|
| Accuracy | 62.4% |
| Cost | 52228 |
| Alternative 16 | |
|---|---|
| Accuracy | 79.9% |
| Cost | 52224 |
| Alternative 17 | |
|---|---|
| Accuracy | 63.8% |
| Cost | 46472 |
| Alternative 18 | |
|---|---|
| Accuracy | 54.2% |
| Cost | 45961 |
| Alternative 19 | |
|---|---|
| Accuracy | 63.7% |
| Cost | 45961 |
| Alternative 20 | |
|---|---|
| Accuracy | 63.7% |
| Cost | 45960 |
| Alternative 21 | |
|---|---|
| Accuracy | 63.8% |
| Cost | 45960 |
| Alternative 22 | |
|---|---|
| Accuracy | 48.7% |
| Cost | 45696 |
| Alternative 23 | |
|---|---|
| Accuracy | 47.9% |
| Cost | 39305 |
| Alternative 24 | |
|---|---|
| Accuracy | 48.3% |
| Cost | 39305 |
| Alternative 25 | |
|---|---|
| Accuracy | 48.8% |
| Cost | 39168 |
| Alternative 26 | |
|---|---|
| Accuracy | 47.0% |
| Cost | 33032 |
| Alternative 27 | |
|---|---|
| Accuracy | 47.7% |
| Cost | 26505 |
| Alternative 28 | |
|---|---|
| Accuracy | 46.8% |
| Cost | 26441 |
| Alternative 29 | |
|---|---|
| Accuracy | 31.4% |
| Cost | 19456 |
herbie shell --seed 2023137
(FPCore (lambda1 lambda2 phi1 phi2)
:name "Bearing on a great circle"
:precision binary64
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2))))))