Bearing on a great circle

Percentage Accurate: 78.9% → 99.7%
Time: 38.2s
Alternatives: 24
Speedup: 1.0×

Specification

?
\[\begin{array}{l} \\ \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)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (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) {
	return atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((Math.sin((lambda1 - lambda2)) * Math.cos(phi2)), ((Math.cos(phi1) * Math.sin(phi2)) - ((Math.sin(phi1) * Math.cos(phi2)) * Math.cos((lambda1 - lambda2)))));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((math.sin((lambda1 - lambda2)) * math.cos(phi2)), ((math.cos(phi1) * math.sin(phi2)) - ((math.sin(phi1) * math.cos(phi2)) * math.cos((lambda1 - lambda2)))))
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 tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
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]
\begin{array}{l}

\\
\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)}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 24 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 78.9% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \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)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (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) {
	return atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((Math.sin((lambda1 - lambda2)) * Math.cos(phi2)), ((Math.cos(phi1) * Math.sin(phi2)) - ((Math.sin(phi1) * Math.cos(phi2)) * Math.cos((lambda1 - lambda2)))));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((math.sin((lambda1 - lambda2)) * math.cos(phi2)), ((math.cos(phi1) * math.sin(phi2)) - ((math.sin(phi1) * math.cos(phi2)) * math.cos((lambda1 - lambda2)))))
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 tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
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]
\begin{array}{l}

\\
\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)}
\end{array}

Alternative 1: 99.7% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (*
   (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
   (cos phi2))
  (fma
   (- (cos phi2))
   (*
    (sin phi1)
    (+
     (log1p (expm1 (* (sin lambda1) (sin lambda2))))
     (* (cos lambda2) (cos lambda1))))
   (* (cos phi1) (sin phi2)))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), fma(-cos(phi2), (sin(phi1) * (log1p(expm1((sin(lambda1) * sin(lambda2)))) + (cos(lambda2) * cos(lambda1)))), (cos(phi1) * sin(phi2))));
}
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), fma(Float64(-cos(phi2)), Float64(sin(phi1) * Float64(log1p(expm1(Float64(sin(lambda1) * sin(lambda2)))) + Float64(cos(lambda2) * cos(lambda1)))), Float64(cos(phi1) * sin(phi2))))
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[((-N[Cos[phi2], $MachinePrecision]) * N[(N[Sin[phi1], $MachinePrecision] * N[(N[Log[1 + N[(Exp[N[(N[Sin[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]] - 1), $MachinePrecision]], $MachinePrecision] + N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Step-by-step derivation
    1. sub-neg74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
    2. +-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
    3. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
    4. associate-*r*74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
    5. distribute-rgt-neg-in74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
    6. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
    7. fma-def74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
    8. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
  3. Simplified74.9%

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]
  4. Step-by-step derivation
    1. sin-diff86.9%

      \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  5. Applied egg-rr86.9%

    \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  6. Step-by-step derivation
    1. cos-diff99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    2. +-commutative99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. *-commutative99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \color{blue}{\cos \lambda_2 \cdot \cos \lambda_1}\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  7. Applied egg-rr99.8%

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
  8. Step-by-step derivation
    1. log1p-expm1-u99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)} + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  9. Applied egg-rr99.8%

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)} + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  10. Final simplification99.8%

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\mathsf{log1p}\left(\mathsf{expm1}\left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]

Alternative 2: 99.7% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (*
   (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
   (cos phi2))
  (fma
   (- (cos phi2))
   (*
    (sin phi1)
    (+ (* (sin lambda1) (sin lambda2)) (* (cos lambda2) (cos lambda1))))
   (* (cos phi1) (sin phi2)))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), fma(-cos(phi2), (sin(phi1) * ((sin(lambda1) * sin(lambda2)) + (cos(lambda2) * cos(lambda1)))), (cos(phi1) * sin(phi2))));
}
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), fma(Float64(-cos(phi2)), Float64(sin(phi1) * Float64(Float64(sin(lambda1) * sin(lambda2)) + Float64(cos(lambda2) * cos(lambda1)))), Float64(cos(phi1) * sin(phi2))))
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[((-N[Cos[phi2], $MachinePrecision]) * N[(N[Sin[phi1], $MachinePrecision] * N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision] + N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Step-by-step derivation
    1. sub-neg74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
    2. +-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
    3. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
    4. associate-*r*74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
    5. distribute-rgt-neg-in74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
    6. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
    7. fma-def74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
    8. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
  3. Simplified74.9%

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]
  4. Step-by-step derivation
    1. sin-diff86.9%

      \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  5. Applied egg-rr86.9%

    \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  6. Step-by-step derivation
    1. cos-diff99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    2. +-commutative99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. *-commutative99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \color{blue}{\cos \lambda_2 \cdot \cos \lambda_1}\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  7. Applied egg-rr99.8%

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
  8. Final simplification99.8%

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]

Alternative 3: 94.3% accurate, 0.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := -\cos \phi_2\\ t_1 := \cos \phi_1 \cdot \sin \phi_2\\ t_2 := \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2\\ t_3 := \cos \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_2 \leq -2 \cdot 10^{-15}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(t_0, \sin \phi_1 \cdot t_3, t_1\right)}\\ \mathbf{elif}\;\phi_2 \leq 330:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(t_0, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right), \sin \phi_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_1 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot t_3}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (- (cos phi2)))
        (t_1 (* (cos phi1) (sin phi2)))
        (t_2
         (*
          (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
          (cos phi2)))
        (t_3 (cos (- lambda1 lambda2))))
   (if (<= phi2 -2e-15)
     (atan2 t_2 (fma t_0 (* (sin phi1) t_3) t_1))
     (if (<= phi2 330.0)
       (atan2
        t_2
        (fma
         t_0
         (*
          (sin phi1)
          (+ (* (sin lambda1) (sin lambda2)) (* (cos lambda2) (cos lambda1))))
         (sin phi2)))
       (atan2 t_2 (- t_1 (* (* (cos phi2) (sin phi1)) t_3)))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = -cos(phi2);
	double t_1 = cos(phi1) * sin(phi2);
	double t_2 = ((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2);
	double t_3 = cos((lambda1 - lambda2));
	double tmp;
	if (phi2 <= -2e-15) {
		tmp = atan2(t_2, fma(t_0, (sin(phi1) * t_3), t_1));
	} else if (phi2 <= 330.0) {
		tmp = atan2(t_2, fma(t_0, (sin(phi1) * ((sin(lambda1) * sin(lambda2)) + (cos(lambda2) * cos(lambda1)))), sin(phi2)));
	} else {
		tmp = atan2(t_2, (t_1 - ((cos(phi2) * sin(phi1)) * t_3)));
	}
	return tmp;
}
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(-cos(phi2))
	t_1 = Float64(cos(phi1) * sin(phi2))
	t_2 = Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2))
	t_3 = cos(Float64(lambda1 - lambda2))
	tmp = 0.0
	if (phi2 <= -2e-15)
		tmp = atan(t_2, fma(t_0, Float64(sin(phi1) * t_3), t_1));
	elseif (phi2 <= 330.0)
		tmp = atan(t_2, fma(t_0, Float64(sin(phi1) * Float64(Float64(sin(lambda1) * sin(lambda2)) + Float64(cos(lambda2) * cos(lambda1)))), sin(phi2)));
	else
		tmp = atan(t_2, Float64(t_1 - Float64(Float64(cos(phi2) * sin(phi1)) * t_3)));
	end
	return tmp
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = (-N[Cos[phi2], $MachinePrecision])}, Block[{t$95$1 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[phi2, -2e-15], N[ArcTan[t$95$2 / N[(t$95$0 * N[(N[Sin[phi1], $MachinePrecision] * t$95$3), $MachinePrecision] + t$95$1), $MachinePrecision]], $MachinePrecision], If[LessEqual[phi2, 330.0], N[ArcTan[t$95$2 / N[(t$95$0 * N[(N[Sin[phi1], $MachinePrecision] * N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision] + N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[Sin[phi2], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$2 / N[(t$95$1 - N[(N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * t$95$3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := -\cos \phi_2\\
t_1 := \cos \phi_1 \cdot \sin \phi_2\\
t_2 := \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2\\
t_3 := \cos \left(\lambda_1 - \lambda_2\right)\\
\mathbf{if}\;\phi_2 \leq -2 \cdot 10^{-15}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(t_0, \sin \phi_1 \cdot t_3, t_1\right)}\\

\mathbf{elif}\;\phi_2 \leq 330:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(t_0, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right), \sin \phi_2\right)}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{t_1 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot t_3}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if phi2 < -2.0000000000000002e-15

    1. Initial program 69.6%

      \[\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)} \]
    2. Step-by-step derivation
      1. sub-neg69.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
      2. +-commutative69.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
      3. *-commutative69.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      4. associate-*r*69.7%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      5. distribute-rgt-neg-in69.7%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      6. *-commutative69.7%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      7. fma-def69.7%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
      8. *-commutative69.7%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. Simplified69.7%

      \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]
    4. Step-by-step derivation
      1. sin-diff81.9%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    5. Applied egg-rr81.9%

      \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]

    if -2.0000000000000002e-15 < phi2 < 330

    1. Initial program 75.5%

      \[\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)} \]
    2. Step-by-step derivation
      1. sub-neg75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
      2. +-commutative75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
      3. *-commutative75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      4. associate-*r*75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      5. distribute-rgt-neg-in75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      6. *-commutative75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      7. fma-def75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
      8. *-commutative75.5%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. Simplified75.5%

      \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]
    4. Step-by-step derivation
      1. sin-diff88.1%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    5. Applied egg-rr88.1%

      \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    6. Step-by-step derivation
      1. cos-diff99.8%

        \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
      2. +-commutative99.8%

        \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
      3. *-commutative99.8%

        \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \color{blue}{\cos \lambda_2 \cdot \cos \lambda_1}\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    7. Applied egg-rr99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    8. Taylor expanded in phi1 around 0 99.2%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right), \color{blue}{\sin \phi_2}\right)} \]

    if 330 < phi2

    1. Initial program 79.4%

      \[\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)} \]
    2. Step-by-step derivation
      1. sin-diff89.8%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. Applied egg-rr89.8%

      \[\leadsto \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 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification92.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \leq -2 \cdot 10^{-15}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}\\ \mathbf{elif}\;\phi_2 \leq 330:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right), \sin \phi_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\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 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \end{array} \]

Alternative 4: 99.7% accurate, 0.6× speedup?

\[\begin{array}{l} \\ \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 - \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (*
   (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
   (cos phi2))
  (-
   (* (cos phi1) (sin phi2))
   (*
    (+ (* (sin lambda1) (sin lambda2)) (* (cos lambda2) (cos lambda1)))
    (* (cos phi2) (sin phi1))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (((sin(lambda1) * sin(lambda2)) + (cos(lambda2) * cos(lambda1))) * (cos(phi2) * sin(phi1)))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (((sin(lambda1) * sin(lambda2)) + (cos(lambda2) * cos(lambda1))) * (cos(phi2) * sin(phi1)))))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((((Math.sin(lambda1) * Math.cos(lambda2)) - (Math.cos(lambda1) * Math.sin(lambda2))) * Math.cos(phi2)), ((Math.cos(phi1) * Math.sin(phi2)) - (((Math.sin(lambda1) * Math.sin(lambda2)) + (Math.cos(lambda2) * Math.cos(lambda1))) * (Math.cos(phi2) * Math.sin(phi1)))));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((((math.sin(lambda1) * math.cos(lambda2)) - (math.cos(lambda1) * math.sin(lambda2))) * math.cos(phi2)), ((math.cos(phi1) * math.sin(phi2)) - (((math.sin(lambda1) * math.sin(lambda2)) + (math.cos(lambda2) * math.cos(lambda1))) * (math.cos(phi2) * math.sin(phi1)))))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(Float64(sin(lambda1) * sin(lambda2)) + Float64(cos(lambda2) * cos(lambda1))) * Float64(cos(phi2) * sin(phi1)))))
end
function tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (((sin(lambda1) * sin(lambda2)) + (cos(lambda2) * cos(lambda1))) * (cos(phi2) * sin(phi1)))));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision] + N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\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 - \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Step-by-step derivation
    1. cos-diff99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    2. +-commutative99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. *-commutative99.8%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \color{blue}{\cos \lambda_2 \cdot \cos \lambda_1}\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  3. Applied egg-rr75.1%

    \[\leadsto \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 \color{blue}{\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)}} \]
  4. Step-by-step derivation
    1. sin-diff86.9%

      \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  5. Applied egg-rr99.7%

    \[\leadsto \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 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)} \]
  6. Final simplification99.7%

    \[\leadsto \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 - \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)} \]

Alternative 5: 89.3% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (*
   (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
   (cos phi2))
  (fma
   (- (cos phi2))
   (* (sin phi1) (cos (- lambda1 lambda2)))
   (* (cos phi1) (sin phi2)))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), fma(-cos(phi2), (sin(phi1) * cos((lambda1 - lambda2))), (cos(phi1) * sin(phi2))));
}
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), fma(Float64(-cos(phi2)), Float64(sin(phi1) * cos(Float64(lambda1 - lambda2))), Float64(cos(phi1) * sin(phi2))))
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[((-N[Cos[phi2], $MachinePrecision]) * N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Step-by-step derivation
    1. sub-neg74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
    2. +-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
    3. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
    4. associate-*r*74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
    5. distribute-rgt-neg-in74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
    6. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
    7. fma-def74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
    8. *-commutative74.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
  3. Simplified74.9%

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]
  4. Step-by-step derivation
    1. sin-diff86.9%

      \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  5. Applied egg-rr86.9%

    \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  6. Final simplification86.9%

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]

Alternative 6: 89.4% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \phi_2 \cdot \sin \phi_1\\ \mathbf{if}\;\lambda_2 \leq -0.0125 \lor \neg \left(\lambda_2 \leq 0.0029\right):\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_0 - \cos \lambda_2 \cdot t_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 - \lambda_2 \cdot \cos \lambda_1\right)}{t_0 - t_1 \cdot \left(\cos \lambda_1 + \sin \lambda_1 \cdot \lambda_2\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2))) (t_1 (* (cos phi2) (sin phi1))))
   (if (or (<= lambda2 -0.0125) (not (<= lambda2 0.0029)))
     (atan2
      (*
       (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
       (cos phi2))
      (- t_0 (* (cos lambda2) t_1)))
     (atan2
      (* (cos phi2) (- (sin lambda1) (* lambda2 (cos lambda1))))
      (- t_0 (* t_1 (+ (cos lambda1) (* (sin lambda1) lambda2))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double t_1 = cos(phi2) * sin(phi1);
	double tmp;
	if ((lambda2 <= -0.0125) || !(lambda2 <= 0.0029)) {
		tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (t_0 - (cos(lambda2) * t_1)));
	} else {
		tmp = atan2((cos(phi2) * (sin(lambda1) - (lambda2 * cos(lambda1)))), (t_0 - (t_1 * (cos(lambda1) + (sin(lambda1) * lambda2)))));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = cos(phi1) * sin(phi2)
    t_1 = cos(phi2) * sin(phi1)
    if ((lambda2 <= (-0.0125d0)) .or. (.not. (lambda2 <= 0.0029d0))) then
        tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (t_0 - (cos(lambda2) * t_1)))
    else
        tmp = atan2((cos(phi2) * (sin(lambda1) - (lambda2 * cos(lambda1)))), (t_0 - (t_1 * (cos(lambda1) + (sin(lambda1) * lambda2)))))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi1) * Math.sin(phi2);
	double t_1 = Math.cos(phi2) * Math.sin(phi1);
	double tmp;
	if ((lambda2 <= -0.0125) || !(lambda2 <= 0.0029)) {
		tmp = Math.atan2((((Math.sin(lambda1) * Math.cos(lambda2)) - (Math.cos(lambda1) * Math.sin(lambda2))) * Math.cos(phi2)), (t_0 - (Math.cos(lambda2) * t_1)));
	} else {
		tmp = Math.atan2((Math.cos(phi2) * (Math.sin(lambda1) - (lambda2 * Math.cos(lambda1)))), (t_0 - (t_1 * (Math.cos(lambda1) + (Math.sin(lambda1) * lambda2)))));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi1) * math.sin(phi2)
	t_1 = math.cos(phi2) * math.sin(phi1)
	tmp = 0
	if (lambda2 <= -0.0125) or not (lambda2 <= 0.0029):
		tmp = math.atan2((((math.sin(lambda1) * math.cos(lambda2)) - (math.cos(lambda1) * math.sin(lambda2))) * math.cos(phi2)), (t_0 - (math.cos(lambda2) * t_1)))
	else:
		tmp = math.atan2((math.cos(phi2) * (math.sin(lambda1) - (lambda2 * math.cos(lambda1)))), (t_0 - (t_1 * (math.cos(lambda1) + (math.sin(lambda1) * lambda2)))))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	t_1 = Float64(cos(phi2) * sin(phi1))
	tmp = 0.0
	if ((lambda2 <= -0.0125) || !(lambda2 <= 0.0029))
		tmp = atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(t_0 - Float64(cos(lambda2) * t_1)));
	else
		tmp = atan(Float64(cos(phi2) * Float64(sin(lambda1) - Float64(lambda2 * cos(lambda1)))), Float64(t_0 - Float64(t_1 * Float64(cos(lambda1) + Float64(sin(lambda1) * lambda2)))));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi1) * sin(phi2);
	t_1 = cos(phi2) * sin(phi1);
	tmp = 0.0;
	if ((lambda2 <= -0.0125) || ~((lambda2 <= 0.0029)))
		tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (t_0 - (cos(lambda2) * t_1)));
	else
		tmp = atan2((cos(phi2) * (sin(lambda1) - (lambda2 * cos(lambda1)))), (t_0 - (t_1 * (cos(lambda1) + (sin(lambda1) * lambda2)))));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[lambda2, -0.0125], N[Not[LessEqual[lambda2, 0.0029]], $MachinePrecision]], N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[Cos[lambda2], $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[(N[Sin[lambda1], $MachinePrecision] - N[(lambda2 * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(t$95$1 * N[(N[Cos[lambda1], $MachinePrecision] + N[(N[Sin[lambda1], $MachinePrecision] * lambda2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
t_1 := \cos \phi_2 \cdot \sin \phi_1\\
\mathbf{if}\;\lambda_2 \leq -0.0125 \lor \neg \left(\lambda_2 \leq 0.0029\right):\\
\;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_0 - \cos \lambda_2 \cdot t_1}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 - \lambda_2 \cdot \cos \lambda_1\right)}{t_0 - t_1 \cdot \left(\cos \lambda_1 + \sin \lambda_1 \cdot \lambda_2\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if lambda2 < -0.012500000000000001 or 0.0029 < lambda2

    1. Initial program 54.7%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 54.8%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg54.8%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified54.8%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Step-by-step derivation
      1. sin-diff76.6%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    6. Applied egg-rr76.4%

      \[\leadsto \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 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2} \]

    if -0.012500000000000001 < lambda2 < 0.0029

    1. Initial program 98.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)} \]
    2. Taylor expanded in lambda2 around 0 99.1%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 + -1 \cdot \left(\lambda_2 \cdot \cos \lambda_1\right)\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)} \]
    3. Step-by-step derivation
      1. mul-1-neg99.1%

        \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 + \color{blue}{\left(-\lambda_2 \cdot \cos \lambda_1\right)}\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)} \]
      2. unsub-neg99.1%

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 - \lambda_2 \cdot \cos \lambda_1\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)} \]
    4. Simplified99.1%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 - \lambda_2 \cdot \cos \lambda_1\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)} \]
    5. Taylor expanded in lambda2 around 0 99.3%

      \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 - \lambda_2 \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\left(\cos \lambda_1 + \lambda_2 \cdot \sin \lambda_1\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification86.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_2 \leq -0.0125 \lor \neg \left(\lambda_2 \leq 0.0029\right):\\ \;\;\;\;\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 \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 - \lambda_2 \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \left(\cos \lambda_1 + \sin \lambda_1 \cdot \lambda_2\right)}\\ \end{array} \]

Alternative 7: 89.3% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \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 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (*
   (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
   (cos phi2))
  (-
   (* (cos phi1) (sin phi2))
   (* (* (cos phi2) (sin phi1)) (cos (- lambda1 lambda2))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((cos(phi2) * sin(phi1)) * cos((lambda1 - lambda2)))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((cos(phi2) * sin(phi1)) * cos((lambda1 - lambda2)))))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((((Math.sin(lambda1) * Math.cos(lambda2)) - (Math.cos(lambda1) * Math.sin(lambda2))) * Math.cos(phi2)), ((Math.cos(phi1) * Math.sin(phi2)) - ((Math.cos(phi2) * Math.sin(phi1)) * Math.cos((lambda1 - lambda2)))));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((((math.sin(lambda1) * math.cos(lambda2)) - (math.cos(lambda1) * math.sin(lambda2))) * math.cos(phi2)), ((math.cos(phi1) * math.sin(phi2)) - ((math.cos(phi2) * math.sin(phi1)) * math.cos((lambda1 - lambda2)))))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(cos(phi2) * sin(phi1)) * cos(Float64(lambda1 - lambda2)))))
end
function tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((cos(phi2) * sin(phi1)) * cos((lambda1 - lambda2)))));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\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 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Step-by-step derivation
    1. sin-diff86.9%

      \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
  3. Applied egg-rr86.8%

    \[\leadsto \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 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
  4. Final simplification86.8%

    \[\leadsto \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 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]

Alternative 8: 87.4% accurate, 0.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \left(\lambda_1 - \lambda_2\right)\\ t_1 := \cos \phi_1 \cdot \sin \phi_2\\ t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot t_0, t_1\right)}\\ \mathbf{elif}\;\phi_1 \leq 8.3 \cdot 10^{+18}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_1 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_1 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_0\right)\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (cos (- lambda1 lambda2)))
        (t_1 (* (cos phi1) (sin phi2)))
        (t_2 (* (cos phi2) (sin (- lambda1 lambda2)))))
   (if (<= phi1 -1.1e-12)
     (atan2 t_2 (fma (- (cos phi2)) (* (sin phi1) t_0) t_1))
     (if (<= phi1 8.3e+18)
       (atan2
        (*
         (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
         (cos phi2))
        (- t_1 (* (sin phi1) (cos (- lambda2 lambda1)))))
       (atan2
        t_2
        (- t_1 (* (* (cos phi2) (sin phi1)) (log1p (expm1 t_0)))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos((lambda1 - lambda2));
	double t_1 = cos(phi1) * sin(phi2);
	double t_2 = cos(phi2) * sin((lambda1 - lambda2));
	double tmp;
	if (phi1 <= -1.1e-12) {
		tmp = atan2(t_2, fma(-cos(phi2), (sin(phi1) * t_0), t_1));
	} else if (phi1 <= 8.3e+18) {
		tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (t_1 - (sin(phi1) * cos((lambda2 - lambda1)))));
	} else {
		tmp = atan2(t_2, (t_1 - ((cos(phi2) * sin(phi1)) * log1p(expm1(t_0)))));
	}
	return tmp;
}
function code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(Float64(lambda1 - lambda2))
	t_1 = Float64(cos(phi1) * sin(phi2))
	t_2 = Float64(cos(phi2) * sin(Float64(lambda1 - lambda2)))
	tmp = 0.0
	if (phi1 <= -1.1e-12)
		tmp = atan(t_2, fma(Float64(-cos(phi2)), Float64(sin(phi1) * t_0), t_1));
	elseif (phi1 <= 8.3e+18)
		tmp = atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(t_1 - Float64(sin(phi1) * cos(Float64(lambda2 - lambda1)))));
	else
		tmp = atan(t_2, Float64(t_1 - Float64(Float64(cos(phi2) * sin(phi1)) * log1p(expm1(t_0)))));
	end
	return tmp
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[phi1, -1.1e-12], N[ArcTan[t$95$2 / N[((-N[Cos[phi2], $MachinePrecision]) * N[(N[Sin[phi1], $MachinePrecision] * t$95$0), $MachinePrecision] + t$95$1), $MachinePrecision]], $MachinePrecision], If[LessEqual[phi1, 8.3e+18], N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$1 - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$2 / N[(t$95$1 - N[(N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Log[1 + N[(Exp[t$95$0] - 1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \left(\lambda_1 - \lambda_2\right)\\
t_1 := \cos \phi_1 \cdot \sin \phi_2\\
t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\
\mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot t_0, t_1\right)}\\

\mathbf{elif}\;\phi_1 \leq 8.3 \cdot 10^{+18}:\\
\;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_1 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{t_1 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_0\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if phi1 < -1.09999999999999996e-12

    1. Initial program 73.6%

      \[\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)} \]
    2. Step-by-step derivation
      1. sub-neg73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
      2. +-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
      3. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      4. associate-*r*73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      5. distribute-rgt-neg-in73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      6. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      7. fma-def73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
      8. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. Simplified73.6%

      \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]

    if -1.09999999999999996e-12 < phi1 < 8.3e18

    1. Initial program 77.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)} \]
    2. Taylor expanded in phi2 around 0 77.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg77.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified77.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Step-by-step derivation
      1. sin-diff98.6%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    6. Applied egg-rr98.6%

      \[\leadsto \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 \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1} \]

    if 8.3e18 < phi1

    1. Initial program 70.1%

      \[\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)} \]
    2. Step-by-step derivation
      1. log1p-expm1-u70.1%

        \[\leadsto \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 \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\cos \left(\lambda_1 - \lambda_2\right)\right)\right)}} \]
    3. Applied egg-rr70.1%

      \[\leadsto \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 \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\cos \left(\lambda_1 - \lambda_2\right)\right)\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}\\ \mathbf{elif}\;\phi_1 \leq 8.3 \cdot 10^{+18}:\\ \;\;\;\;\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 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\cos \left(\lambda_1 - \lambda_2\right)\right)\right)}\\ \end{array} \]

Alternative 9: 86.7% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \left(\lambda_2 - \lambda_1\right)\\ t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), t_0\right)}\\ \mathbf{elif}\;\phi_1 \leq 1.05 \cdot 10^{-72}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot t_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_0 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot t_1\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2)))
        (t_1 (cos (- lambda2 lambda1)))
        (t_2 (* (cos phi2) (sin (- lambda1 lambda2)))))
   (if (<= phi1 -1.1e-12)
     (atan2
      t_2
      (fma (- (cos phi2)) (* (sin phi1) (cos (- lambda1 lambda2))) t_0))
     (if (<= phi1 1.05e-72)
       (atan2
        (*
         (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
         (cos phi2))
        (- (sin phi2) (* phi1 t_1)))
       (atan2 t_2 (- t_0 (* (cos phi2) (* (sin phi1) t_1))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double t_1 = cos((lambda2 - lambda1));
	double t_2 = cos(phi2) * sin((lambda1 - lambda2));
	double tmp;
	if (phi1 <= -1.1e-12) {
		tmp = atan2(t_2, fma(-cos(phi2), (sin(phi1) * cos((lambda1 - lambda2))), t_0));
	} else if (phi1 <= 1.05e-72) {
		tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (sin(phi2) - (phi1 * t_1)));
	} else {
		tmp = atan2(t_2, (t_0 - (cos(phi2) * (sin(phi1) * t_1))));
	}
	return tmp;
}
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	t_1 = cos(Float64(lambda2 - lambda1))
	t_2 = Float64(cos(phi2) * sin(Float64(lambda1 - lambda2)))
	tmp = 0.0
	if (phi1 <= -1.1e-12)
		tmp = atan(t_2, fma(Float64(-cos(phi2)), Float64(sin(phi1) * cos(Float64(lambda1 - lambda2))), t_0));
	elseif (phi1 <= 1.05e-72)
		tmp = atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(sin(phi2) - Float64(phi1 * t_1)));
	else
		tmp = atan(t_2, Float64(t_0 - Float64(cos(phi2) * Float64(sin(phi1) * t_1))));
	end
	return tmp
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[phi1, -1.1e-12], N[ArcTan[t$95$2 / N[((-N[Cos[phi2], $MachinePrecision]) * N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + t$95$0), $MachinePrecision]], $MachinePrecision], If[LessEqual[phi1, 1.05e-72], N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(phi1 * t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$2 / N[(t$95$0 - N[(N[Cos[phi2], $MachinePrecision] * N[(N[Sin[phi1], $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
t_1 := \cos \left(\lambda_2 - \lambda_1\right)\\
t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\
\mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), t_0\right)}\\

\mathbf{elif}\;\phi_1 \leq 1.05 \cdot 10^{-72}:\\
\;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot t_1}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{t_0 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot t_1\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if phi1 < -1.09999999999999996e-12

    1. Initial program 73.6%

      \[\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)} \]
    2. Step-by-step derivation
      1. sub-neg73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
      2. +-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
      3. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      4. associate-*r*73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      5. distribute-rgt-neg-in73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      6. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      7. fma-def73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
      8. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. Simplified73.6%

      \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]

    if -1.09999999999999996e-12 < phi1 < 1.05e-72

    1. Initial program 76.2%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in phi1 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}} \]
    6. Taylor expanded in phi1 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\sin \phi_2} - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
    7. Step-by-step derivation
      1. sin-diff99.8%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    8. Applied egg-rr99.8%

      \[\leadsto \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}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]

    if 1.05e-72 < phi1

    1. Initial program 74.3%

      \[\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)} \]
    2. Taylor expanded in phi1 around inf 74.3%

      \[\leadsto \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(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)}} \]
    3. Step-by-step derivation
      1. sub-neg74.3%

        \[\leadsto \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(\cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1\right)} \]
      2. remove-double-neg74.3%

        \[\leadsto \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(\cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1\right)} \]
      3. mul-1-neg74.3%

        \[\leadsto \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(\cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1\right)} \]
      4. distribute-neg-in74.3%

        \[\leadsto \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(\cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1\right)} \]
      5. +-commutative74.3%

        \[\leadsto \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(\cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1\right)} \]
      6. cos-neg74.3%

        \[\leadsto \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(\color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1\right)} \]
      7. mul-1-neg74.3%

        \[\leadsto \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(\cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1\right)} \]
      8. unsub-neg74.3%

        \[\leadsto \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(\cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1\right)} \]
    4. Simplified74.3%

      \[\leadsto \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(\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}\\ \mathbf{elif}\;\phi_1 \leq 1.05 \cdot 10^{-72}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)\right)}\\ \end{array} \]

Alternative 10: 86.7% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \left(\lambda_1 - \lambda_2\right)\\ t_1 := \cos \phi_1 \cdot \sin \phi_2\\ t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot t_0, t_1\right)}\\ \mathbf{elif}\;\phi_1 \leq 1.05 \cdot 10^{-72}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_1 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot t_0\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (cos (- lambda1 lambda2)))
        (t_1 (* (cos phi1) (sin phi2)))
        (t_2 (* (cos phi2) (sin (- lambda1 lambda2)))))
   (if (<= phi1 -1.1e-12)
     (atan2 t_2 (fma (- (cos phi2)) (* (sin phi1) t_0) t_1))
     (if (<= phi1 1.05e-72)
       (atan2
        (*
         (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
         (cos phi2))
        (- (sin phi2) (* phi1 (cos (- lambda2 lambda1)))))
       (atan2 t_2 (- t_1 (* (sin phi1) (* (cos phi2) t_0))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos((lambda1 - lambda2));
	double t_1 = cos(phi1) * sin(phi2);
	double t_2 = cos(phi2) * sin((lambda1 - lambda2));
	double tmp;
	if (phi1 <= -1.1e-12) {
		tmp = atan2(t_2, fma(-cos(phi2), (sin(phi1) * t_0), t_1));
	} else if (phi1 <= 1.05e-72) {
		tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (sin(phi2) - (phi1 * cos((lambda2 - lambda1)))));
	} else {
		tmp = atan2(t_2, (t_1 - (sin(phi1) * (cos(phi2) * t_0))));
	}
	return tmp;
}
function code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(Float64(lambda1 - lambda2))
	t_1 = Float64(cos(phi1) * sin(phi2))
	t_2 = Float64(cos(phi2) * sin(Float64(lambda1 - lambda2)))
	tmp = 0.0
	if (phi1 <= -1.1e-12)
		tmp = atan(t_2, fma(Float64(-cos(phi2)), Float64(sin(phi1) * t_0), t_1));
	elseif (phi1 <= 1.05e-72)
		tmp = atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(sin(phi2) - Float64(phi1 * cos(Float64(lambda2 - lambda1)))));
	else
		tmp = atan(t_2, Float64(t_1 - Float64(sin(phi1) * Float64(cos(phi2) * t_0))));
	end
	return tmp
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[phi1, -1.1e-12], N[ArcTan[t$95$2 / N[((-N[Cos[phi2], $MachinePrecision]) * N[(N[Sin[phi1], $MachinePrecision] * t$95$0), $MachinePrecision] + t$95$1), $MachinePrecision]], $MachinePrecision], If[LessEqual[phi1, 1.05e-72], N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(phi1 * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$2 / N[(t$95$1 - N[(N[Sin[phi1], $MachinePrecision] * N[(N[Cos[phi2], $MachinePrecision] * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \left(\lambda_1 - \lambda_2\right)\\
t_1 := \cos \phi_1 \cdot \sin \phi_2\\
t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\
\mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot t_0, t_1\right)}\\

\mathbf{elif}\;\phi_1 \leq 1.05 \cdot 10^{-72}:\\
\;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{t_2}{t_1 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot t_0\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if phi1 < -1.09999999999999996e-12

    1. Initial program 73.6%

      \[\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)} \]
    2. Step-by-step derivation
      1. sub-neg73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\cos \phi_1 \cdot \sin \phi_2 + \left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}} \]
      2. +-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
      3. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      4. associate-*r*73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\left(-\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}\right) + \cos \phi_1 \cdot \sin \phi_2} \]
      5. distribute-rgt-neg-in73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right) \cdot \left(-\cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      6. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\left(-\cos \phi_2\right) \cdot \left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
      7. fma-def73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\mathsf{fma}\left(-\cos \phi_2, \cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1, \cos \phi_1 \cdot \sin \phi_2\right)}} \]
      8. *-commutative73.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \color{blue}{\sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}, \cos \phi_1 \cdot \sin \phi_2\right)} \]
    3. Simplified73.6%

      \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}} \]

    if -1.09999999999999996e-12 < phi1 < 1.05e-72

    1. Initial program 76.2%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in phi1 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}} \]
    6. Taylor expanded in phi1 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\sin \phi_2} - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
    7. Step-by-step derivation
      1. sin-diff99.8%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    8. Applied egg-rr99.8%

      \[\leadsto \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}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]

    if 1.05e-72 < phi1

    1. Initial program 74.3%

      \[\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)} \]
    2. Step-by-step derivation
      1. expm1-log1p-u74.3%

        \[\leadsto \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 \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos \left(\lambda_1 - \lambda_2\right)\right)\right)}} \]
    3. Applied egg-rr74.3%

      \[\leadsto \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 \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos \left(\lambda_1 - \lambda_2\right)\right)\right)}} \]
    4. Step-by-step derivation
      1. expm1-log1p-u74.3%

        \[\leadsto \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 \color{blue}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
      2. pow174.3%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{{\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}^{1}}} \]
      3. associate-*l*74.3%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - {\color{blue}{\left(\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right)}}^{1}} \]
    5. Applied egg-rr74.3%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{{\left(\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right)}^{1}}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)}\\ \mathbf{elif}\;\phi_1 \leq 1.05 \cdot 10^{-72}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\\ \end{array} \]

Alternative 11: 71.4% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_2 \cdot \sin \phi_1\\ t_1 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ t_2 := \cos \phi_1 \cdot \sin \phi_2\\ t_3 := \tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_2 - t_0 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{if}\;\lambda_1 \leq -1.75 \cdot 10^{+20}:\\ \;\;\;\;t_3\\ \mathbf{elif}\;\lambda_1 \leq -1.75 \cdot 10^{-146}:\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{t_2 - t_0}\\ \mathbf{elif}\;\lambda_1 \leq 4.2 \cdot 10^{-101}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{t_2 - \cos \lambda_2 \cdot t_0}\\ \mathbf{elif}\;\lambda_1 \leq 7.2 \cdot 10^{+49}:\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{t_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;t_3\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi2) (sin phi1)))
        (t_1 (* (cos phi2) (sin (- lambda1 lambda2))))
        (t_2 (* (cos phi1) (sin phi2)))
        (t_3
         (atan2
          (* (sin lambda1) (cos phi2))
          (- t_2 (* t_0 (cos (- lambda1 lambda2)))))))
   (if (<= lambda1 -1.75e+20)
     t_3
     (if (<= lambda1 -1.75e-146)
       (atan2 t_1 (- t_2 t_0))
       (if (<= lambda1 4.2e-101)
         (atan2 (* (cos phi2) (sin (- lambda2))) (- t_2 (* (cos lambda2) t_0)))
         (if (<= lambda1 7.2e+49)
           (atan2 t_1 (- t_2 (* (sin phi1) (cos (- lambda2 lambda1)))))
           t_3))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi2) * sin(phi1);
	double t_1 = cos(phi2) * sin((lambda1 - lambda2));
	double t_2 = cos(phi1) * sin(phi2);
	double t_3 = atan2((sin(lambda1) * cos(phi2)), (t_2 - (t_0 * cos((lambda1 - lambda2)))));
	double tmp;
	if (lambda1 <= -1.75e+20) {
		tmp = t_3;
	} else if (lambda1 <= -1.75e-146) {
		tmp = atan2(t_1, (t_2 - t_0));
	} else if (lambda1 <= 4.2e-101) {
		tmp = atan2((cos(phi2) * sin(-lambda2)), (t_2 - (cos(lambda2) * t_0)));
	} else if (lambda1 <= 7.2e+49) {
		tmp = atan2(t_1, (t_2 - (sin(phi1) * cos((lambda2 - lambda1)))));
	} else {
		tmp = t_3;
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: tmp
    t_0 = cos(phi2) * sin(phi1)
    t_1 = cos(phi2) * sin((lambda1 - lambda2))
    t_2 = cos(phi1) * sin(phi2)
    t_3 = atan2((sin(lambda1) * cos(phi2)), (t_2 - (t_0 * cos((lambda1 - lambda2)))))
    if (lambda1 <= (-1.75d+20)) then
        tmp = t_3
    else if (lambda1 <= (-1.75d-146)) then
        tmp = atan2(t_1, (t_2 - t_0))
    else if (lambda1 <= 4.2d-101) then
        tmp = atan2((cos(phi2) * sin(-lambda2)), (t_2 - (cos(lambda2) * t_0)))
    else if (lambda1 <= 7.2d+49) then
        tmp = atan2(t_1, (t_2 - (sin(phi1) * cos((lambda2 - lambda1)))))
    else
        tmp = t_3
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi2) * Math.sin(phi1);
	double t_1 = Math.cos(phi2) * Math.sin((lambda1 - lambda2));
	double t_2 = Math.cos(phi1) * Math.sin(phi2);
	double t_3 = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (t_2 - (t_0 * Math.cos((lambda1 - lambda2)))));
	double tmp;
	if (lambda1 <= -1.75e+20) {
		tmp = t_3;
	} else if (lambda1 <= -1.75e-146) {
		tmp = Math.atan2(t_1, (t_2 - t_0));
	} else if (lambda1 <= 4.2e-101) {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin(-lambda2)), (t_2 - (Math.cos(lambda2) * t_0)));
	} else if (lambda1 <= 7.2e+49) {
		tmp = Math.atan2(t_1, (t_2 - (Math.sin(phi1) * Math.cos((lambda2 - lambda1)))));
	} else {
		tmp = t_3;
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi2) * math.sin(phi1)
	t_1 = math.cos(phi2) * math.sin((lambda1 - lambda2))
	t_2 = math.cos(phi1) * math.sin(phi2)
	t_3 = math.atan2((math.sin(lambda1) * math.cos(phi2)), (t_2 - (t_0 * math.cos((lambda1 - lambda2)))))
	tmp = 0
	if lambda1 <= -1.75e+20:
		tmp = t_3
	elif lambda1 <= -1.75e-146:
		tmp = math.atan2(t_1, (t_2 - t_0))
	elif lambda1 <= 4.2e-101:
		tmp = math.atan2((math.cos(phi2) * math.sin(-lambda2)), (t_2 - (math.cos(lambda2) * t_0)))
	elif lambda1 <= 7.2e+49:
		tmp = math.atan2(t_1, (t_2 - (math.sin(phi1) * math.cos((lambda2 - lambda1)))))
	else:
		tmp = t_3
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi2) * sin(phi1))
	t_1 = Float64(cos(phi2) * sin(Float64(lambda1 - lambda2)))
	t_2 = Float64(cos(phi1) * sin(phi2))
	t_3 = atan(Float64(sin(lambda1) * cos(phi2)), Float64(t_2 - Float64(t_0 * cos(Float64(lambda1 - lambda2)))))
	tmp = 0.0
	if (lambda1 <= -1.75e+20)
		tmp = t_3;
	elseif (lambda1 <= -1.75e-146)
		tmp = atan(t_1, Float64(t_2 - t_0));
	elseif (lambda1 <= 4.2e-101)
		tmp = atan(Float64(cos(phi2) * sin(Float64(-lambda2))), Float64(t_2 - Float64(cos(lambda2) * t_0)));
	elseif (lambda1 <= 7.2e+49)
		tmp = atan(t_1, Float64(t_2 - Float64(sin(phi1) * cos(Float64(lambda2 - lambda1)))));
	else
		tmp = t_3;
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi2) * sin(phi1);
	t_1 = cos(phi2) * sin((lambda1 - lambda2));
	t_2 = cos(phi1) * sin(phi2);
	t_3 = atan2((sin(lambda1) * cos(phi2)), (t_2 - (t_0 * cos((lambda1 - lambda2)))));
	tmp = 0.0;
	if (lambda1 <= -1.75e+20)
		tmp = t_3;
	elseif (lambda1 <= -1.75e-146)
		tmp = atan2(t_1, (t_2 - t_0));
	elseif (lambda1 <= 4.2e-101)
		tmp = atan2((cos(phi2) * sin(-lambda2)), (t_2 - (cos(lambda2) * t_0)));
	elseif (lambda1 <= 7.2e+49)
		tmp = atan2(t_1, (t_2 - (sin(phi1) * cos((lambda2 - lambda1)))));
	else
		tmp = t_3;
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$2 - N[(t$95$0 * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[lambda1, -1.75e+20], t$95$3, If[LessEqual[lambda1, -1.75e-146], N[ArcTan[t$95$1 / N[(t$95$2 - t$95$0), $MachinePrecision]], $MachinePrecision], If[LessEqual[lambda1, 4.2e-101], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[(-lambda2)], $MachinePrecision]), $MachinePrecision] / N[(t$95$2 - N[(N[Cos[lambda2], $MachinePrecision] * t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[lambda1, 7.2e+49], N[ArcTan[t$95$1 / N[(t$95$2 - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$3]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_2 \cdot \sin \phi_1\\
t_1 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\
t_2 := \cos \phi_1 \cdot \sin \phi_2\\
t_3 := \tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_2 - t_0 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\
\mathbf{if}\;\lambda_1 \leq -1.75 \cdot 10^{+20}:\\
\;\;\;\;t_3\\

\mathbf{elif}\;\lambda_1 \leq -1.75 \cdot 10^{-146}:\\
\;\;\;\;\tan^{-1}_* \frac{t_1}{t_2 - t_0}\\

\mathbf{elif}\;\lambda_1 \leq 4.2 \cdot 10^{-101}:\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{t_2 - \cos \lambda_2 \cdot t_0}\\

\mathbf{elif}\;\lambda_1 \leq 7.2 \cdot 10^{+49}:\\
\;\;\;\;\tan^{-1}_* \frac{t_1}{t_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\

\mathbf{else}:\\
\;\;\;\;t_3\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if lambda1 < -1.75e20 or 7.19999999999999993e49 < lambda1

    1. Initial program 54.6%

      \[\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)} \]
    2. Taylor expanded in lambda2 around 0 56.4%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \lambda_1} \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)} \]

    if -1.75e20 < lambda1 < -1.7500000000000001e-146

    1. Initial program 96.5%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 96.5%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg96.5%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified96.5%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in lambda2 around 0 83.2%

      \[\leadsto \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 \sin \phi_1}} \]
    6. Step-by-step derivation
      1. *-commutative83.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]
    7. Simplified83.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]

    if -1.7500000000000001e-146 < lambda1 < 4.20000000000000031e-101

    1. Initial program 99.8%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 99.8%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg99.8%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified99.8%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in lambda1 around 0 94.2%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(-\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 \lambda_2} \]

    if 4.20000000000000031e-101 < lambda1 < 7.19999999999999993e49

    1. Initial program 77.8%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 71.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg71.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified71.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification71.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq -1.75 \cdot 10^{+20}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{elif}\;\lambda_1 \leq -1.75 \cdot 10^{-146}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \sin \phi_1}\\ \mathbf{elif}\;\lambda_1 \leq 4.2 \cdot 10^{-101}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\\ \mathbf{elif}\;\lambda_1 \leq 7.2 \cdot 10^{+49}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \end{array} \]

Alternative 12: 86.7% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \left(\lambda_2 - \lambda_1\right)\\ \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12} \lor \neg \left(\phi_1 \leq 1.05 \cdot 10^{-72}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot t_0\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot t_0}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (cos (- lambda2 lambda1))))
   (if (or (<= phi1 -1.1e-12) (not (<= phi1 1.05e-72)))
     (atan2
      (* (cos phi2) (sin (- lambda1 lambda2)))
      (- (* (cos phi1) (sin phi2)) (* (cos phi2) (* (sin phi1) t_0))))
     (atan2
      (*
       (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
       (cos phi2))
      (- (sin phi2) (* phi1 t_0))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos((lambda2 - lambda1));
	double tmp;
	if ((phi1 <= -1.1e-12) || !(phi1 <= 1.05e-72)) {
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (sin(phi1) * t_0))));
	} else {
		tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (sin(phi2) - (phi1 * t_0)));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: tmp
    t_0 = cos((lambda2 - lambda1))
    if ((phi1 <= (-1.1d-12)) .or. (.not. (phi1 <= 1.05d-72))) then
        tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (sin(phi1) * t_0))))
    else
        tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (sin(phi2) - (phi1 * t_0)))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos((lambda2 - lambda1));
	double tmp;
	if ((phi1 <= -1.1e-12) || !(phi1 <= 1.05e-72)) {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), ((Math.cos(phi1) * Math.sin(phi2)) - (Math.cos(phi2) * (Math.sin(phi1) * t_0))));
	} else {
		tmp = Math.atan2((((Math.sin(lambda1) * Math.cos(lambda2)) - (Math.cos(lambda1) * Math.sin(lambda2))) * Math.cos(phi2)), (Math.sin(phi2) - (phi1 * t_0)));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos((lambda2 - lambda1))
	tmp = 0
	if (phi1 <= -1.1e-12) or not (phi1 <= 1.05e-72):
		tmp = math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), ((math.cos(phi1) * math.sin(phi2)) - (math.cos(phi2) * (math.sin(phi1) * t_0))))
	else:
		tmp = math.atan2((((math.sin(lambda1) * math.cos(lambda2)) - (math.cos(lambda1) * math.sin(lambda2))) * math.cos(phi2)), (math.sin(phi2) - (phi1 * t_0)))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(Float64(lambda2 - lambda1))
	tmp = 0.0
	if ((phi1 <= -1.1e-12) || !(phi1 <= 1.05e-72))
		tmp = atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(cos(phi2) * Float64(sin(phi1) * t_0))));
	else
		tmp = atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(sin(phi2) - Float64(phi1 * t_0)));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos((lambda2 - lambda1));
	tmp = 0.0;
	if ((phi1 <= -1.1e-12) || ~((phi1 <= 1.05e-72)))
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (sin(phi1) * t_0))));
	else
		tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), (sin(phi2) - (phi1 * t_0)));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]}, If[Or[LessEqual[phi1, -1.1e-12], N[Not[LessEqual[phi1, 1.05e-72]], $MachinePrecision]], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[phi2], $MachinePrecision] * N[(N[Sin[phi1], $MachinePrecision] * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(phi1 * t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \left(\lambda_2 - \lambda_1\right)\\
\mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12} \lor \neg \left(\phi_1 \leq 1.05 \cdot 10^{-72}\right):\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot t_0\right)}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot t_0}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if phi1 < -1.09999999999999996e-12 or 1.05e-72 < phi1

    1. Initial program 74.0%

      \[\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)} \]
    2. Taylor expanded in phi1 around inf 74.0%

      \[\leadsto \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(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)}} \]
    3. Step-by-step derivation
      1. sub-neg74.0%

        \[\leadsto \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(\cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1\right)} \]
      2. remove-double-neg74.0%

        \[\leadsto \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(\cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1\right)} \]
      3. mul-1-neg74.0%

        \[\leadsto \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(\cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1\right)} \]
      4. distribute-neg-in74.0%

        \[\leadsto \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(\cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1\right)} \]
      5. +-commutative74.0%

        \[\leadsto \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(\cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1\right)} \]
      6. cos-neg74.0%

        \[\leadsto \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(\color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1\right)} \]
      7. mul-1-neg74.0%

        \[\leadsto \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(\cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1\right)} \]
      8. unsub-neg74.0%

        \[\leadsto \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(\cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1\right)} \]
    4. Simplified74.0%

      \[\leadsto \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(\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1\right)}} \]

    if -1.09999999999999996e-12 < phi1 < 1.05e-72

    1. Initial program 76.2%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg76.2%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in phi1 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}} \]
    6. Taylor expanded in phi1 around 0 76.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\sin \phi_2} - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
    7. Step-by-step derivation
      1. sin-diff99.8%

        \[\leadsto \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}{\mathsf{fma}\left(-\cos \phi_2, \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_1 \cdot \sin \phi_2\right)} \]
    8. Applied egg-rr99.8%

      \[\leadsto \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}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification85.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_1 \leq -1.1 \cdot 10^{-12} \lor \neg \left(\phi_1 \leq 1.05 \cdot 10^{-72}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \]

Alternative 13: 77.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_1 \leq -1.7 \cdot 10^{+20} \lor \neg \left(\lambda_1 \leq 7.5 \cdot 10^{+49}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2))))
   (if (or (<= lambda1 -1.7e+20) (not (<= lambda1 7.5e+49)))
     (atan2
      (* (sin lambda1) (cos phi2))
      (- t_0 (* (* (cos phi2) (sin phi1)) (cos (- lambda1 lambda2)))))
     (atan2
      (* (cos phi2) (sin (- lambda1 lambda2)))
      (- t_0 (* (sin phi1) (* (cos lambda2) (cos phi2))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double tmp;
	if ((lambda1 <= -1.7e+20) || !(lambda1 <= 7.5e+49)) {
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - ((cos(phi2) * sin(phi1)) * cos((lambda1 - lambda2)))));
	} else {
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - (sin(phi1) * (cos(lambda2) * cos(phi2)))));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: tmp
    t_0 = cos(phi1) * sin(phi2)
    if ((lambda1 <= (-1.7d+20)) .or. (.not. (lambda1 <= 7.5d+49))) then
        tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - ((cos(phi2) * sin(phi1)) * cos((lambda1 - lambda2)))))
    else
        tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - (sin(phi1) * (cos(lambda2) * cos(phi2)))))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi1) * Math.sin(phi2);
	double tmp;
	if ((lambda1 <= -1.7e+20) || !(lambda1 <= 7.5e+49)) {
		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (t_0 - ((Math.cos(phi2) * Math.sin(phi1)) * Math.cos((lambda1 - lambda2)))));
	} else {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (t_0 - (Math.sin(phi1) * (Math.cos(lambda2) * Math.cos(phi2)))));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi1) * math.sin(phi2)
	tmp = 0
	if (lambda1 <= -1.7e+20) or not (lambda1 <= 7.5e+49):
		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), (t_0 - ((math.cos(phi2) * math.sin(phi1)) * math.cos((lambda1 - lambda2)))))
	else:
		tmp = math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (t_0 - (math.sin(phi1) * (math.cos(lambda2) * math.cos(phi2)))))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	tmp = 0.0
	if ((lambda1 <= -1.7e+20) || !(lambda1 <= 7.5e+49))
		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(t_0 - Float64(Float64(cos(phi2) * sin(phi1)) * cos(Float64(lambda1 - lambda2)))));
	else
		tmp = atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(t_0 - Float64(sin(phi1) * Float64(cos(lambda2) * cos(phi2)))));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi1) * sin(phi2);
	tmp = 0.0;
	if ((lambda1 <= -1.7e+20) || ~((lambda1 <= 7.5e+49)))
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - ((cos(phi2) * sin(phi1)) * cos((lambda1 - lambda2)))));
	else
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - (sin(phi1) * (cos(lambda2) * cos(phi2)))));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[lambda1, -1.7e+20], N[Not[LessEqual[lambda1, 7.5e+49]], $MachinePrecision]], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[Sin[phi1], $MachinePrecision] * N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
\mathbf{if}\;\lambda_1 \leq -1.7 \cdot 10^{+20} \lor \neg \left(\lambda_1 \leq 7.5 \cdot 10^{+49}\right):\\
\;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if lambda1 < -1.7e20 or 7.4999999999999995e49 < lambda1

    1. Initial program 54.6%

      \[\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)} \]
    2. Taylor expanded in lambda2 around 0 56.4%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \lambda_1} \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)} \]

    if -1.7e20 < lambda1 < 7.4999999999999995e49

    1. Initial program 94.0%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 93.8%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg93.8%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified93.8%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in phi1 around inf 93.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}} \]
    6. Step-by-step derivation
      1. associate-*r*93.8%

        \[\leadsto \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 \lambda_2 \cdot \cos \phi_2\right) \cdot \sin \phi_1}} \]
      2. *-commutative93.8%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}} \]
    7. Simplified93.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification75.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq -1.7 \cdot 10^{+20} \lor \neg \left(\lambda_1 \leq 7.5 \cdot 10^{+49}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\ \end{array} \]

Alternative 14: 68.5% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \phi_2 \cdot \sin \phi_1\\ \mathbf{if}\;\lambda_2 \leq -1.9 \cdot 10^{+25} \lor \neg \left(\lambda_2 \leq 2800000\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{t_0 - \cos \lambda_2 \cdot t_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - t_1}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2))) (t_1 (* (cos phi2) (sin phi1))))
   (if (or (<= lambda2 -1.9e+25) (not (<= lambda2 2800000.0)))
     (atan2 (* (cos phi2) (sin (- lambda2))) (- t_0 (* (cos lambda2) t_1)))
     (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (- t_0 t_1)))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double t_1 = cos(phi2) * sin(phi1);
	double tmp;
	if ((lambda2 <= -1.9e+25) || !(lambda2 <= 2800000.0)) {
		tmp = atan2((cos(phi2) * sin(-lambda2)), (t_0 - (cos(lambda2) * t_1)));
	} else {
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - t_1));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = cos(phi1) * sin(phi2)
    t_1 = cos(phi2) * sin(phi1)
    if ((lambda2 <= (-1.9d+25)) .or. (.not. (lambda2 <= 2800000.0d0))) then
        tmp = atan2((cos(phi2) * sin(-lambda2)), (t_0 - (cos(lambda2) * t_1)))
    else
        tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - t_1))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi1) * Math.sin(phi2);
	double t_1 = Math.cos(phi2) * Math.sin(phi1);
	double tmp;
	if ((lambda2 <= -1.9e+25) || !(lambda2 <= 2800000.0)) {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin(-lambda2)), (t_0 - (Math.cos(lambda2) * t_1)));
	} else {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (t_0 - t_1));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi1) * math.sin(phi2)
	t_1 = math.cos(phi2) * math.sin(phi1)
	tmp = 0
	if (lambda2 <= -1.9e+25) or not (lambda2 <= 2800000.0):
		tmp = math.atan2((math.cos(phi2) * math.sin(-lambda2)), (t_0 - (math.cos(lambda2) * t_1)))
	else:
		tmp = math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (t_0 - t_1))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	t_1 = Float64(cos(phi2) * sin(phi1))
	tmp = 0.0
	if ((lambda2 <= -1.9e+25) || !(lambda2 <= 2800000.0))
		tmp = atan(Float64(cos(phi2) * sin(Float64(-lambda2))), Float64(t_0 - Float64(cos(lambda2) * t_1)));
	else
		tmp = atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(t_0 - t_1));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi1) * sin(phi2);
	t_1 = cos(phi2) * sin(phi1);
	tmp = 0.0;
	if ((lambda2 <= -1.9e+25) || ~((lambda2 <= 2800000.0)))
		tmp = atan2((cos(phi2) * sin(-lambda2)), (t_0 - (cos(lambda2) * t_1)));
	else
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - t_1));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[lambda2, -1.9e+25], N[Not[LessEqual[lambda2, 2800000.0]], $MachinePrecision]], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[(-lambda2)], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[Cos[lambda2], $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - t$95$1), $MachinePrecision]], $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
t_1 := \cos \phi_2 \cdot \sin \phi_1\\
\mathbf{if}\;\lambda_2 \leq -1.9 \cdot 10^{+25} \lor \neg \left(\lambda_2 \leq 2800000\right):\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{t_0 - \cos \lambda_2 \cdot t_1}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - t_1}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if lambda2 < -1.9e25 or 2.8e6 < lambda2

    1. Initial program 53.0%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 53.0%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg53.0%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified53.0%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in lambda1 around 0 52.6%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(-\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 \lambda_2} \]

    if -1.9e25 < lambda2 < 2.8e6

    1. Initial program 97.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)} \]
    2. Taylor expanded in lambda1 around 0 83.0%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg83.0%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified83.0%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in lambda2 around 0 83.0%

      \[\leadsto \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 \sin \phi_1}} \]
    6. Step-by-step derivation
      1. *-commutative83.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]
    7. Simplified83.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification67.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_2 \leq -1.9 \cdot 10^{+25} \lor \neg \left(\lambda_2 \leq 2800000\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \sin \phi_1}\\ \end{array} \]

Alternative 15: 78.9% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (* (cos phi2) (sin (- lambda1 lambda2)))
  (-
   (* (cos phi1) (sin phi2))
   (* (cos phi2) (* (sin phi1) (cos (- lambda2 lambda1)))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (sin(phi1) * cos((lambda2 - lambda1))))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (sin(phi1) * cos((lambda2 - lambda1))))))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), ((Math.cos(phi1) * Math.sin(phi2)) - (Math.cos(phi2) * (Math.sin(phi1) * Math.cos((lambda2 - lambda1))))));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), ((math.cos(phi1) * math.sin(phi2)) - (math.cos(phi2) * (math.sin(phi1) * math.cos((lambda2 - lambda1))))))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(cos(phi2) * Float64(sin(phi1) * cos(Float64(lambda2 - lambda1))))))
end
function tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (sin(phi1) * cos((lambda2 - lambda1))))));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[phi2], $MachinePrecision] * N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)\right)}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Taylor expanded in phi1 around inf 74.9%

    \[\leadsto \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(\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1\right)}} \]
  3. Step-by-step derivation
    1. sub-neg74.9%

      \[\leadsto \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(\cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1\right)} \]
    2. remove-double-neg74.9%

      \[\leadsto \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(\cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1\right)} \]
    3. mul-1-neg74.9%

      \[\leadsto \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(\cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1\right)} \]
    4. distribute-neg-in74.9%

      \[\leadsto \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(\cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1\right)} \]
    5. +-commutative74.9%

      \[\leadsto \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(\cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1\right)} \]
    6. cos-neg74.9%

      \[\leadsto \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(\color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1\right)} \]
    7. mul-1-neg74.9%

      \[\leadsto \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(\cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1\right)} \]
    8. unsub-neg74.9%

      \[\leadsto \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(\cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1\right)} \]
  4. Simplified74.9%

    \[\leadsto \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(\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1\right)}} \]
  5. Final simplification74.9%

    \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)\right)} \]

Alternative 16: 62.3% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\lambda_1 \leq -3 \cdot 10^{-286}:\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \cos \phi_2 \cdot \sin \phi_1}\\ \mathbf{elif}\;\lambda_1 \leq 2.1 \cdot 10^{+76}:\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \cos \lambda_2 \cdot \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2)))
        (t_1 (* (cos phi2) (sin (- lambda1 lambda2)))))
   (if (<= lambda1 -3e-286)
     (atan2 t_1 (- t_0 (* (cos phi2) (sin phi1))))
     (if (<= lambda1 2.1e+76)
       (atan2 t_1 (- t_0 (* (cos lambda2) (sin phi1))))
       (atan2
        (* (sin lambda1) (cos phi2))
        (- t_0 (* (sin phi1) (cos (- lambda2 lambda1)))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double t_1 = cos(phi2) * sin((lambda1 - lambda2));
	double tmp;
	if (lambda1 <= -3e-286) {
		tmp = atan2(t_1, (t_0 - (cos(phi2) * sin(phi1))));
	} else if (lambda1 <= 2.1e+76) {
		tmp = atan2(t_1, (t_0 - (cos(lambda2) * sin(phi1))));
	} else {
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = cos(phi1) * sin(phi2)
    t_1 = cos(phi2) * sin((lambda1 - lambda2))
    if (lambda1 <= (-3d-286)) then
        tmp = atan2(t_1, (t_0 - (cos(phi2) * sin(phi1))))
    else if (lambda1 <= 2.1d+76) then
        tmp = atan2(t_1, (t_0 - (cos(lambda2) * sin(phi1))))
    else
        tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi1) * Math.sin(phi2);
	double t_1 = Math.cos(phi2) * Math.sin((lambda1 - lambda2));
	double tmp;
	if (lambda1 <= -3e-286) {
		tmp = Math.atan2(t_1, (t_0 - (Math.cos(phi2) * Math.sin(phi1))));
	} else if (lambda1 <= 2.1e+76) {
		tmp = Math.atan2(t_1, (t_0 - (Math.cos(lambda2) * Math.sin(phi1))));
	} else {
		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (t_0 - (Math.sin(phi1) * Math.cos((lambda2 - lambda1)))));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi1) * math.sin(phi2)
	t_1 = math.cos(phi2) * math.sin((lambda1 - lambda2))
	tmp = 0
	if lambda1 <= -3e-286:
		tmp = math.atan2(t_1, (t_0 - (math.cos(phi2) * math.sin(phi1))))
	elif lambda1 <= 2.1e+76:
		tmp = math.atan2(t_1, (t_0 - (math.cos(lambda2) * math.sin(phi1))))
	else:
		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), (t_0 - (math.sin(phi1) * math.cos((lambda2 - lambda1)))))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	t_1 = Float64(cos(phi2) * sin(Float64(lambda1 - lambda2)))
	tmp = 0.0
	if (lambda1 <= -3e-286)
		tmp = atan(t_1, Float64(t_0 - Float64(cos(phi2) * sin(phi1))));
	elseif (lambda1 <= 2.1e+76)
		tmp = atan(t_1, Float64(t_0 - Float64(cos(lambda2) * sin(phi1))));
	else
		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(t_0 - Float64(sin(phi1) * cos(Float64(lambda2 - lambda1)))));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi1) * sin(phi2);
	t_1 = cos(phi2) * sin((lambda1 - lambda2));
	tmp = 0.0;
	if (lambda1 <= -3e-286)
		tmp = atan2(t_1, (t_0 - (cos(phi2) * sin(phi1))));
	elseif (lambda1 <= 2.1e+76)
		tmp = atan2(t_1, (t_0 - (cos(lambda2) * sin(phi1))));
	else
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[lambda1, -3e-286], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[lambda1, 2.1e+76], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
t_1 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\
\mathbf{if}\;\lambda_1 \leq -3 \cdot 10^{-286}:\\
\;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \cos \phi_2 \cdot \sin \phi_1}\\

\mathbf{elif}\;\lambda_1 \leq 2.1 \cdot 10^{+76}:\\
\;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \cos \lambda_2 \cdot \sin \phi_1}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if lambda1 < -3e-286

    1. Initial program 78.0%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 72.3%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg72.3%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified72.3%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in lambda2 around 0 64.8%

      \[\leadsto \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 \sin \phi_1}} \]
    6. Step-by-step derivation
      1. *-commutative64.8%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]
    7. Simplified64.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]

    if -3e-286 < lambda1 < 2.10000000000000007e76

    1. Initial program 87.3%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 74.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg74.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified74.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in lambda1 around 0 74.1%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \lambda_2} \cdot \sin \phi_1} \]

    if 2.10000000000000007e76 < lambda1

    1. Initial program 51.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)} \]
    2. Taylor expanded in phi2 around 0 42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in lambda2 around 0 46.2%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \lambda_1} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification63.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq -3 \cdot 10^{-286}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \sin \phi_1}\\ \mathbf{elif}\;\lambda_1 \leq 2.1 \cdot 10^{+76}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_2 \cdot \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \]

Alternative 17: 67.4% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_2 \leq 3.5 \cdot 10^{-14}:\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \cos \phi_2 \cdot \sin \phi_1}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2)))
        (t_1 (* (cos phi2) (sin (- lambda1 lambda2)))))
   (if (<= phi2 3.5e-14)
     (atan2 t_1 (- t_0 (* (sin phi1) (cos (- lambda2 lambda1)))))
     (atan2 t_1 (- t_0 (* (cos phi2) (sin phi1)))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double t_1 = cos(phi2) * sin((lambda1 - lambda2));
	double tmp;
	if (phi2 <= 3.5e-14) {
		tmp = atan2(t_1, (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	} else {
		tmp = atan2(t_1, (t_0 - (cos(phi2) * sin(phi1))));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = cos(phi1) * sin(phi2)
    t_1 = cos(phi2) * sin((lambda1 - lambda2))
    if (phi2 <= 3.5d-14) then
        tmp = atan2(t_1, (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))))
    else
        tmp = atan2(t_1, (t_0 - (cos(phi2) * sin(phi1))))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi1) * Math.sin(phi2);
	double t_1 = Math.cos(phi2) * Math.sin((lambda1 - lambda2));
	double tmp;
	if (phi2 <= 3.5e-14) {
		tmp = Math.atan2(t_1, (t_0 - (Math.sin(phi1) * Math.cos((lambda2 - lambda1)))));
	} else {
		tmp = Math.atan2(t_1, (t_0 - (Math.cos(phi2) * Math.sin(phi1))));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi1) * math.sin(phi2)
	t_1 = math.cos(phi2) * math.sin((lambda1 - lambda2))
	tmp = 0
	if phi2 <= 3.5e-14:
		tmp = math.atan2(t_1, (t_0 - (math.sin(phi1) * math.cos((lambda2 - lambda1)))))
	else:
		tmp = math.atan2(t_1, (t_0 - (math.cos(phi2) * math.sin(phi1))))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	t_1 = Float64(cos(phi2) * sin(Float64(lambda1 - lambda2)))
	tmp = 0.0
	if (phi2 <= 3.5e-14)
		tmp = atan(t_1, Float64(t_0 - Float64(sin(phi1) * cos(Float64(lambda2 - lambda1)))));
	else
		tmp = atan(t_1, Float64(t_0 - Float64(cos(phi2) * sin(phi1))));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi1) * sin(phi2);
	t_1 = cos(phi2) * sin((lambda1 - lambda2));
	tmp = 0.0;
	if (phi2 <= 3.5e-14)
		tmp = atan2(t_1, (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	else
		tmp = atan2(t_1, (t_0 - (cos(phi2) * sin(phi1))));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[phi2, 3.5e-14], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
t_1 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\
\mathbf{if}\;\phi_2 \leq 3.5 \cdot 10^{-14}:\\
\;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \cos \phi_2 \cdot \sin \phi_1}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if phi2 < 3.5000000000000002e-14

    1. Initial program 73.7%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 64.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg64.9%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified64.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]

    if 3.5000000000000002e-14 < phi2

    1. Initial program 78.5%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 70.6%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg70.6%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified70.6%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in lambda2 around 0 61.0%

      \[\leadsto \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 \sin \phi_1}} \]
    6. Step-by-step derivation
      1. *-commutative61.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]
    7. Simplified61.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1 \cdot \cos \phi_2}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification63.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \leq 3.5 \cdot 10^{-14}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \sin \phi_1}\\ \end{array} \]

Alternative 18: 57.8% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_1 \leq 1.95 \cdot 10^{+76}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2))))
   (if (<= lambda1 1.95e+76)
     (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (- t_0 (sin phi1)))
     (atan2
      (* (sin lambda1) (cos phi2))
      (- t_0 (* (sin phi1) (cos (- lambda2 lambda1))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double tmp;
	if (lambda1 <= 1.95e+76) {
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - sin(phi1)));
	} else {
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: tmp
    t_0 = cos(phi1) * sin(phi2)
    if (lambda1 <= 1.95d+76) then
        tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - sin(phi1)))
    else
        tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi1) * Math.sin(phi2);
	double tmp;
	if (lambda1 <= 1.95e+76) {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (t_0 - Math.sin(phi1)));
	} else {
		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (t_0 - (Math.sin(phi1) * Math.cos((lambda2 - lambda1)))));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi1) * math.sin(phi2)
	tmp = 0
	if lambda1 <= 1.95e+76:
		tmp = math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (t_0 - math.sin(phi1)))
	else:
		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), (t_0 - (math.sin(phi1) * math.cos((lambda2 - lambda1)))))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	tmp = 0.0
	if (lambda1 <= 1.95e+76)
		tmp = atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(t_0 - sin(phi1)));
	else
		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(t_0 - Float64(sin(phi1) * cos(Float64(lambda2 - lambda1)))));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi1) * sin(phi2);
	tmp = 0.0;
	if (lambda1 <= 1.95e+76)
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - sin(phi1)));
	else
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[lambda1, 1.95e+76], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[Sin[phi1], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
\mathbf{if}\;\lambda_1 \leq 1.95 \cdot 10^{+76}:\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if lambda1 < 1.94999999999999995e76

    1. Initial program 81.1%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 67.1%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified67.1%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in lambda2 around 0 52.6%

      \[\leadsto \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 \left(-\lambda_1\right) + -1 \cdot \left(\lambda_2 \cdot \sin \left(-\lambda_1\right)\right)\right)} \cdot \sin \phi_1} \]
    6. Step-by-step derivation
      1. cos-neg52.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_1} + -1 \cdot \left(\lambda_2 \cdot \sin \left(-\lambda_1\right)\right)\right) \cdot \sin \phi_1} \]
      2. mul-1-neg52.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 + \color{blue}{\left(-\lambda_2 \cdot \sin \left(-\lambda_1\right)\right)}\right) \cdot \sin \phi_1} \]
      3. unsub-neg52.6%

        \[\leadsto \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 \lambda_1 - \lambda_2 \cdot \sin \left(-\lambda_1\right)\right)} \cdot \sin \phi_1} \]
      4. sin-neg52.6%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 - \lambda_2 \cdot \color{blue}{\left(-\sin \lambda_1\right)}\right) \cdot \sin \phi_1} \]
    7. Simplified52.6%

      \[\leadsto \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 \lambda_1 - \lambda_2 \cdot \left(-\sin \lambda_1\right)\right)} \cdot \sin \phi_1} \]
    8. Taylor expanded in lambda1 around 0 58.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1}} \]

    if 1.94999999999999995e76 < lambda1

    1. Initial program 51.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)} \]
    2. Taylor expanded in phi2 around 0 42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in lambda2 around 0 46.2%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \lambda_1} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification56.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq 1.95 \cdot 10^{+76}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \]

Alternative 19: 62.4% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\lambda_1 \leq 1.9 \cdot 10^{+76}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (if (<= lambda1 1.9e+76)
   (atan2
    (* (cos phi2) (sin (- lambda1 lambda2)))
    (- (sin phi2) (* (cos lambda2) (* (cos phi2) (sin phi1)))))
   (atan2
    (* (sin lambda1) (cos phi2))
    (- (* (cos phi1) (sin phi2)) (* (sin phi1) (cos (- lambda2 lambda1)))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double tmp;
	if (lambda1 <= 1.9e+76) {
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda2) * (cos(phi2) * sin(phi1)))));
	} else {
		tmp = atan2((sin(lambda1) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (sin(phi1) * cos((lambda2 - lambda1)))));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: tmp
    if (lambda1 <= 1.9d+76) then
        tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda2) * (cos(phi2) * sin(phi1)))))
    else
        tmp = atan2((sin(lambda1) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (sin(phi1) * cos((lambda2 - lambda1)))))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double tmp;
	if (lambda1 <= 1.9e+76) {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (Math.sin(phi2) - (Math.cos(lambda2) * (Math.cos(phi2) * Math.sin(phi1)))));
	} else {
		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), ((Math.cos(phi1) * Math.sin(phi2)) - (Math.sin(phi1) * Math.cos((lambda2 - lambda1)))));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	tmp = 0
	if lambda1 <= 1.9e+76:
		tmp = math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (math.sin(phi2) - (math.cos(lambda2) * (math.cos(phi2) * math.sin(phi1)))))
	else:
		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), ((math.cos(phi1) * math.sin(phi2)) - (math.sin(phi1) * math.cos((lambda2 - lambda1)))))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	tmp = 0.0
	if (lambda1 <= 1.9e+76)
		tmp = atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(sin(phi2) - Float64(cos(lambda2) * Float64(cos(phi2) * sin(phi1)))));
	else
		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(sin(phi1) * cos(Float64(lambda2 - lambda1)))));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	tmp = 0.0;
	if (lambda1 <= 1.9e+76)
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda2) * (cos(phi2) * sin(phi1)))));
	else
		tmp = atan2((sin(lambda1) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (sin(phi1) * cos((lambda2 - lambda1)))));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := If[LessEqual[lambda1, 1.9e+76], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Cos[lambda2], $MachinePrecision] * N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\lambda_1 \leq 1.9 \cdot 10^{+76}:\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if lambda1 < 1.90000000000000012e76

    1. Initial program 81.1%

      \[\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)} \]
    2. Taylor expanded in lambda1 around 0 76.5%

      \[\leadsto \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 \color{blue}{\cos \left(-\lambda_2\right)}} \]
    3. Step-by-step derivation
      1. cos-neg76.5%

        \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    4. Simplified76.5%

      \[\leadsto \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 \color{blue}{\cos \lambda_2}} \]
    5. Taylor expanded in phi1 around 0 65.2%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\sin \phi_2} - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2} \]

    if 1.90000000000000012e76 < lambda1

    1. Initial program 51.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)} \]
    2. Taylor expanded in phi2 around 0 42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in lambda2 around 0 46.2%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \lambda_1} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification61.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq 1.9 \cdot 10^{+76}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \]

Alternative 20: 62.8% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_1 \leq 1.08 \cdot 10^{+77}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \cos \lambda_2 \cdot \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (cos phi1) (sin phi2))))
   (if (<= lambda1 1.08e+77)
     (atan2
      (* (cos phi2) (sin (- lambda1 lambda2)))
      (- t_0 (* (cos lambda2) (sin phi1))))
     (atan2
      (* (sin lambda1) (cos phi2))
      (- t_0 (* (sin phi1) (cos (- lambda2 lambda1))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = cos(phi1) * sin(phi2);
	double tmp;
	if (lambda1 <= 1.08e+77) {
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - (cos(lambda2) * sin(phi1))));
	} else {
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	}
	return tmp;
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    real(8) :: t_0
    real(8) :: tmp
    t_0 = cos(phi1) * sin(phi2)
    if (lambda1 <= 1.08d+77) then
        tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - (cos(lambda2) * sin(phi1))))
    else
        tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))))
    end if
    code = tmp
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.cos(phi1) * Math.sin(phi2);
	double tmp;
	if (lambda1 <= 1.08e+77) {
		tmp = Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (t_0 - (Math.cos(lambda2) * Math.sin(phi1))));
	} else {
		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (t_0 - (Math.sin(phi1) * Math.cos((lambda2 - lambda1)))));
	}
	return tmp;
}
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.cos(phi1) * math.sin(phi2)
	tmp = 0
	if lambda1 <= 1.08e+77:
		tmp = math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (t_0 - (math.cos(lambda2) * math.sin(phi1))))
	else:
		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), (t_0 - (math.sin(phi1) * math.cos((lambda2 - lambda1)))))
	return tmp
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(cos(phi1) * sin(phi2))
	tmp = 0.0
	if (lambda1 <= 1.08e+77)
		tmp = atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(t_0 - Float64(cos(lambda2) * sin(phi1))));
	else
		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(t_0 - Float64(sin(phi1) * cos(Float64(lambda2 - lambda1)))));
	end
	return tmp
end
function tmp_2 = code(lambda1, lambda2, phi1, phi2)
	t_0 = cos(phi1) * sin(phi2);
	tmp = 0.0;
	if (lambda1 <= 1.08e+77)
		tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (t_0 - (cos(lambda2) * sin(phi1))));
	else
		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - (sin(phi1) * cos((lambda2 - lambda1)))));
	end
	tmp_2 = tmp;
end
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[lambda1, 1.08e+77], N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \cos \phi_1 \cdot \sin \phi_2\\
\mathbf{if}\;\lambda_1 \leq 1.08 \cdot 10^{+77}:\\
\;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \cos \lambda_2 \cdot \sin \phi_1}\\

\mathbf{else}:\\
\;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if lambda1 < 1.07999999999999996e77

    1. Initial program 81.1%

      \[\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)} \]
    2. Taylor expanded in phi2 around 0 67.1%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg67.1%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified67.1%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in lambda1 around 0 65.9%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \lambda_2} \cdot \sin \phi_1} \]

    if 1.07999999999999996e77 < lambda1

    1. Initial program 51.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)} \]
    2. Taylor expanded in phi2 around 0 42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
    3. Step-by-step derivation
      1. sub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
      2. remove-double-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      3. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
      4. distribute-neg-in42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
      5. +-commutative42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
      6. cos-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
      7. mul-1-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
      8. unsub-neg42.0%

        \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
    4. Simplified42.0%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
    5. Taylor expanded in lambda2 around 0 46.2%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \lambda_1} \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification61.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq 1.08 \cdot 10^{+77}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_2 \cdot \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \]

Alternative 21: 55.7% accurate, 1.3× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (* (cos phi2) (sin (- lambda1 lambda2)))
  (- (* (cos phi1) (sin phi2)) (sin phi1))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - sin(phi1)));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - sin(phi1)))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), ((Math.cos(phi1) * Math.sin(phi2)) - Math.sin(phi1)));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), ((math.cos(phi1) * math.sin(phi2)) - math.sin(phi1)))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(Float64(cos(phi1) * sin(phi2)) - sin(phi1)))
end
function tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), ((cos(phi1) * sin(phi2)) - sin(phi1)));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[Sin[phi1], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Taylor expanded in phi2 around 0 61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
  3. Step-by-step derivation
    1. sub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
    2. remove-double-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    3. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    4. distribute-neg-in61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
    5. +-commutative61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
    6. cos-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
    7. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
    8. unsub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
  4. Simplified61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
  5. Taylor expanded in lambda2 around 0 49.6%

    \[\leadsto \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 \left(-\lambda_1\right) + -1 \cdot \left(\lambda_2 \cdot \sin \left(-\lambda_1\right)\right)\right)} \cdot \sin \phi_1} \]
  6. Step-by-step derivation
    1. cos-neg49.6%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_1} + -1 \cdot \left(\lambda_2 \cdot \sin \left(-\lambda_1\right)\right)\right) \cdot \sin \phi_1} \]
    2. mul-1-neg49.6%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 + \color{blue}{\left(-\lambda_2 \cdot \sin \left(-\lambda_1\right)\right)}\right) \cdot \sin \phi_1} \]
    3. unsub-neg49.6%

      \[\leadsto \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 \lambda_1 - \lambda_2 \cdot \sin \left(-\lambda_1\right)\right)} \cdot \sin \phi_1} \]
    4. sin-neg49.6%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 - \lambda_2 \cdot \color{blue}{\left(-\sin \lambda_1\right)}\right) \cdot \sin \phi_1} \]
  7. Simplified49.6%

    \[\leadsto \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 \lambda_1 - \lambda_2 \cdot \left(-\sin \lambda_1\right)\right)} \cdot \sin \phi_1} \]
  8. Taylor expanded in lambda1 around 0 53.6%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\sin \phi_1}} \]
  9. Final simplification53.6%

    \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1} \]

Alternative 22: 30.5% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (* (sin lambda1) (cos phi2))
  (- (sin phi2) (* phi1 (cos (- lambda2 lambda1))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((sin(lambda1) * cos(phi2)), (sin(phi2) - (phi1 * cos((lambda2 - lambda1)))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((sin(lambda1) * cos(phi2)), (sin(phi2) - (phi1 * cos((lambda2 - lambda1)))))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (Math.sin(phi2) - (phi1 * Math.cos((lambda2 - lambda1)))));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((math.sin(lambda1) * math.cos(phi2)), (math.sin(phi2) - (phi1 * math.cos((lambda2 - lambda1)))))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(sin(lambda1) * cos(phi2)), Float64(sin(phi2) - Float64(phi1 * cos(Float64(lambda2 - lambda1)))))
end
function tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((sin(lambda1) * cos(phi2)), (sin(phi2) - (phi1 * cos((lambda2 - lambda1)))));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(phi1 * N[Cos[N[(lambda2 - lambda1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Taylor expanded in phi2 around 0 61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
  3. Step-by-step derivation
    1. sub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
    2. remove-double-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    3. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    4. distribute-neg-in61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
    5. +-commutative61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
    6. cos-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
    7. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
    8. unsub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
  4. Simplified61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
  5. Taylor expanded in phi1 around 0 45.9%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}} \]
  6. Taylor expanded in phi1 around 0 45.9%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\sin \phi_2} - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
  7. Taylor expanded in lambda2 around 0 33.0%

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \lambda_1} \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
  8. Final simplification33.0%

    \[\leadsto \tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]

Alternative 23: 47.4% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_1 \cdot \phi_1} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (* (cos phi2) (sin (- lambda1 lambda2)))
  (- (sin phi2) (* (cos lambda1) phi1))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda1) * phi1)));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda1) * phi1)))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (Math.sin(phi2) - (Math.cos(lambda1) * phi1)));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (math.sin(phi2) - (math.cos(lambda1) * phi1)))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(sin(phi2) - Float64(cos(lambda1) * phi1)))
end
function tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda1) * phi1)));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * phi1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_1 \cdot \phi_1}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Taylor expanded in phi2 around 0 61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
  3. Step-by-step derivation
    1. sub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
    2. remove-double-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    3. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    4. distribute-neg-in61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
    5. +-commutative61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
    6. cos-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
    7. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
    8. unsub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
  4. Simplified61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
  5. Taylor expanded in phi1 around 0 45.9%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}} \]
  6. Taylor expanded in phi1 around 0 45.9%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\sin \phi_2} - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
  7. Taylor expanded in lambda2 around 0 45.4%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \color{blue}{\cos \left(-\lambda_1\right)}} \]
  8. Step-by-step derivation
    1. cos-neg45.4%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \color{blue}{\cos \lambda_1}} \]
  9. Simplified45.4%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \color{blue}{\cos \lambda_1}} \]
  10. Final simplification45.4%

    \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_1 \cdot \phi_1} \]

Alternative 24: 47.5% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_2 \cdot \phi_1} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (* (cos phi2) (sin (- lambda1 lambda2)))
  (- (sin phi2) (* (cos lambda2) phi1))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda2) * phi1)));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda2) * phi1)))
end function
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	return Math.atan2((Math.cos(phi2) * Math.sin((lambda1 - lambda2))), (Math.sin(phi2) - (Math.cos(lambda2) * phi1)));
}
def code(lambda1, lambda2, phi1, phi2):
	return math.atan2((math.cos(phi2) * math.sin((lambda1 - lambda2))), (math.sin(phi2) - (math.cos(lambda2) * phi1)))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), Float64(sin(phi2) - Float64(cos(lambda2) * phi1)))
end
function tmp = code(lambda1, lambda2, phi1, phi2)
	tmp = atan2((cos(phi2) * sin((lambda1 - lambda2))), (sin(phi2) - (cos(lambda2) * phi1)));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[Cos[phi2], $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Cos[lambda2], $MachinePrecision] * phi1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_2 \cdot \phi_1}
\end{array}
Derivation
  1. Initial program 74.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)} \]
  2. Taylor expanded in phi2 around 0 61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_1 - \lambda_2\right) \cdot \sin \phi_1}} \]
  3. Step-by-step derivation
    1. sub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \sin \phi_1} \]
    2. remove-double-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\color{blue}{\left(-\left(-\lambda_1\right)\right)} + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    3. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\left(-\color{blue}{-1 \cdot \lambda_1}\right) + \left(-\lambda_2\right)\right) \cdot \sin \phi_1} \]
    4. distribute-neg-in61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(-\left(-1 \cdot \lambda_1 + \lambda_2\right)\right)} \cdot \sin \phi_1} \]
    5. +-commutative61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(-\color{blue}{\left(\lambda_2 + -1 \cdot \lambda_1\right)}\right) \cdot \sin \phi_1} \]
    6. cos-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 + -1 \cdot \lambda_1\right)} \cdot \sin \phi_1} \]
    7. mul-1-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \left(\lambda_2 + \color{blue}{\left(-\lambda_1\right)}\right) \cdot \sin \phi_1} \]
    8. unsub-neg61.8%

      \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \color{blue}{\left(\lambda_2 - \lambda_1\right)} \cdot \sin \phi_1} \]
  4. Simplified61.8%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \left(\lambda_2 - \lambda_1\right) \cdot \sin \phi_1}} \]
  5. Taylor expanded in phi1 around 0 45.9%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}} \]
  6. Taylor expanded in phi1 around 0 45.9%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\color{blue}{\sin \phi_2} - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
  7. Taylor expanded in lambda1 around 0 46.1%

    \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \color{blue}{\cos \lambda_2}} \]
  8. Final simplification46.1%

    \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_2 \cdot \phi_1} \]

Reproduce

?
herbie shell --seed 2023307 
(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))))))