Bearing on a great circle

Percentage Accurate: 79.7% → 99.7%
Time: 26.7s
Alternatives: 27
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 27 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: 79.7% 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{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \mathsf{fma}\left(\sin \lambda_1 \cdot \left(\sin \lambda_2 \cdot \sin \phi_1\right), \cos \phi_2, \cos \lambda_1 \cdot \left(\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \lambda_2\right)\right)} \end{array} \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2
  (*
   (fma (- (cos lambda1)) (sin lambda2) (* (sin lambda1) (cos lambda2)))
   (cos phi2))
  (-
   (* (sin phi2) (cos phi1))
   (fma
    (* (sin lambda1) (* (sin lambda2) (sin phi1)))
    (cos phi2)
    (* (cos lambda1) (* (* (cos phi2) (sin phi1)) (cos lambda2)))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((fma(-cos(lambda1), sin(lambda2), (sin(lambda1) * cos(lambda2))) * cos(phi2)), ((sin(phi2) * cos(phi1)) - fma((sin(lambda1) * (sin(lambda2) * sin(phi1))), cos(phi2), (cos(lambda1) * ((cos(phi2) * sin(phi1)) * cos(lambda2))))));
}
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(fma(Float64(-cos(lambda1)), sin(lambda2), Float64(sin(lambda1) * cos(lambda2))) * cos(phi2)), Float64(Float64(sin(phi2) * cos(phi1)) - fma(Float64(sin(lambda1) * Float64(sin(lambda2) * sin(phi1))), cos(phi2), Float64(cos(lambda1) * Float64(Float64(cos(phi2) * sin(phi1)) * cos(lambda2))))))
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[((-N[Cos[lambda1], $MachinePrecision]) * N[Sin[lambda2], $MachinePrecision] + N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Sin[phi2], $MachinePrecision] * N[Cos[phi1], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Sin[lambda1], $MachinePrecision] * N[(N[Sin[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision] + N[(N[Cos[lambda1], $MachinePrecision] * N[(N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}

\\
\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \mathsf{fma}\left(\sin \lambda_1 \cdot \left(\sin \lambda_2 \cdot \sin \phi_1\right), \cos \phi_2, \cos \lambda_1 \cdot \left(\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \lambda_2\right)\right)}
\end{array}
Derivation
  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. Add Preprocessing
  3. Step-by-step derivation
    1. lift-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

      \[\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. sub-negN/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
    5. lower-fma.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    6. lower-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    7. lower-cos.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    8. *-commutativeN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
    9. distribute-lft-neg-inN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
    10. sin-negN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
    11. lower-*.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
    12. sin-negN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
    13. lower-neg.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
    14. lower-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
    15. lower-cos.f6488.7

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites88.7%

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
    1. lift-*.f64N/A

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

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
    3. lift--.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \color{blue}{\left(\lambda_1 - \lambda_2\right)}} \]
    4. cos-diffN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}} \]
    5. distribute-lft-inN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
    6. lower-+.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
    7. lower-*.f64N/A

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

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

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

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

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

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

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

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

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

    \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}} \]
  7. Taylor expanded in lambda1 around 0

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(-1 \cdot \left(\cos \lambda_1 \cdot \sin \lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \left(\sin \lambda_2 \cdot \sin \phi_1\right)\right)\right)}} \]
  8. Step-by-step derivation
    1. lower-atan2.f64N/A

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

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

Alternative 2: 99.7% accurate, 0.5× speedup?

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

\\
\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \sin \phi_1 \cdot \mathsf{fma}\left(\sin \lambda_2 \cdot \sin \lambda_1, \cos \phi_2, \left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \cos \phi_2\right)}
\end{array}
Derivation
  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. Add Preprocessing
  3. Step-by-step derivation
    1. lift-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

      \[\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. sub-negN/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
    5. lower-fma.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    6. lower-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    7. lower-cos.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    8. *-commutativeN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
    9. distribute-lft-neg-inN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
    10. sin-negN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
    11. lower-*.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
    12. sin-negN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
    13. lower-neg.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
    14. lower-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
    15. lower-cos.f6488.7

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites88.7%

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
    1. lift-*.f64N/A

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

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
    3. lift--.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \color{blue}{\left(\lambda_1 - \lambda_2\right)}} \]
    4. cos-diffN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}} \]
    5. distribute-lft-inN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
    6. lower-+.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
    7. lower-*.f64N/A

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

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

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

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

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

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

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

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

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

    \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}} \]
  7. Taylor expanded in lambda1 around 0

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(-1 \cdot \left(\cos \lambda_1 \cdot \sin \lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \left(\sin \lambda_2 \cdot \sin \phi_1\right)\right)\right)}} \]
  8. Step-by-step derivation
    1. lower-atan2.f64N/A

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

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

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

Alternative 3: 99.7% accurate, 0.6× speedup?

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

\\
\tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \cos \lambda_1 \cdot \cos \lambda_2\right)}
\end{array}
Derivation
  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. Add Preprocessing
  3. Step-by-step derivation
    1. lift-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

      \[\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. sub-negN/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
    5. lower-fma.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    6. lower-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    7. lower-cos.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
    8. *-commutativeN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
    9. distribute-lft-neg-inN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
    10. sin-negN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
    11. lower-*.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
    12. sin-negN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
    13. lower-neg.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
    14. lower-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
    15. lower-cos.f6488.7

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites88.7%

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
    1. lift-cos.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
    2. lift--.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \color{blue}{\left(\lambda_1 - \lambda_2\right)}} \]
    3. cos-diffN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}} \]
    4. +-commutativeN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right)}} \]
    5. lift-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \left(\color{blue}{\sin \lambda_1} \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right)} \]
    6. lift-sin.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \left(\sin \lambda_1 \cdot \color{blue}{\sin \lambda_2} + \cos \lambda_1 \cdot \cos \lambda_2\right)} \]
    7. *-commutativeN/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \left(\color{blue}{\sin \lambda_2 \cdot \sin \lambda_1} + \cos \lambda_1 \cdot \cos \lambda_2\right)} \]
    8. lower-fma.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \cos \lambda_1 \cdot \cos \lambda_2\right)}} \]
    9. lift-cos.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \color{blue}{\cos \lambda_1} \cdot \cos \lambda_2\right)} \]
    10. lift-cos.f64N/A

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \cos \lambda_1 \cdot \color{blue}{\cos \lambda_2}\right)} \]
    11. lower-*.f6499.7

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \color{blue}{\cos \lambda_1 \cdot \cos \lambda_2}\right)} \]
  6. Applied rewrites99.7%

    \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \cos \lambda_1 \cdot \cos \lambda_2\right)}} \]
  7. Add Preprocessing

Alternative 4: 94.8% accurate, 0.6× speedup?

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

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

\mathbf{elif}\;\phi_2 \leq 2.15 \cdot 10^{-8}:\\
\;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(t\_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \sin \phi_1 \cdot \mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \cos \lambda_1 \cdot \cos \lambda_2\right)}\\

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


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

    1. Initial program 78.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. Add Preprocessing
    3. Step-by-step derivation
      1. lift-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

        \[\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. sub-negN/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
      5. lower-fma.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      6. lower-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      7. lower-cos.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      8. *-commutativeN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
      9. distribute-lft-neg-inN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
      10. sin-negN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
      11. lower-*.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
      12. sin-negN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
      13. lower-neg.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
      14. lower-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
      15. lower-cos.f6491.0

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites91.0%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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)} \]
      2. *-commutativeN/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right)}}{\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. lift-fma.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right)}}{\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. +-commutativeN/A

        \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\left(-\sin \lambda_2\right) \cdot \cos \lambda_1 + \sin \lambda_1 \cdot \cos \lambda_2\right)}}{\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. distribute-rgt-inN/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2 + \left(\sin \lambda_1 \cdot \cos \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)} \]
      6. lower-fma.f64N/A

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

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

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

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

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

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

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

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\cos \lambda_1 \cdot \left(-\sin \lambda_2\right), \cos \phi_2, \left(\cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2\right)}}{\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 -5.00000000000000041e-6 < phi2 < 2.1500000000000001e-8

    1. Initial program 81.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. Add Preprocessing
    3. Step-by-step derivation
      1. lift-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

        \[\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. sub-negN/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
      5. lower-fma.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      6. lower-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      7. lower-cos.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      8. *-commutativeN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
      9. distribute-lft-neg-inN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
      10. sin-negN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
      11. lower-*.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
      12. sin-negN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
      13. lower-neg.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
      14. lower-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
      15. lower-cos.f6487.3

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites87.3%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
      1. lift-*.f64N/A

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

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
      3. lift--.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \color{blue}{\left(\lambda_1 - \lambda_2\right)}} \]
      4. cos-diffN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}} \]
      5. distribute-lft-inN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
      6. lower-+.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
      7. lower-*.f64N/A

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

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

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

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

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

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

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

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

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

      \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}} \]
    7. Taylor expanded in lambda1 around 0

      \[\leadsto \color{blue}{\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(-1 \cdot \left(\cos \lambda_1 \cdot \sin \lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \left(\sin \lambda_2 \cdot \sin \phi_1\right)\right)\right)}} \]
    8. Step-by-step derivation
      1. lower-atan2.f64N/A

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

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

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

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

      if 2.1500000000000001e-8 < phi2

      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. Add Preprocessing
      3. Step-by-step derivation
        1. lift-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

          \[\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. sub-negN/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
        5. lower-fma.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        6. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        7. lower-cos.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        8. *-commutativeN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
        9. distribute-lft-neg-inN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
        10. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
        11. lower-*.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
        12. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
        13. lower-neg.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
        14. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
        15. lower-cos.f6489.4

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

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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)} \]
    12. Recombined 3 regimes into one program.
    13. Final simplification95.3%

      \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \leq -5 \cdot 10^{-6}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\left(-\cos \lambda_1\right) \cdot \sin \lambda_2, \cos \phi_2, \left(\cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{elif}\;\phi_2 \leq 2.15 \cdot 10^{-8}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \sin \phi_1 \cdot \mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \cos \lambda_1 \cdot \cos \lambda_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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)}\\ \end{array} \]
    14. Add Preprocessing

    Alternative 5: 89.8% accurate, 0.7× speedup?

    \[\begin{array}{l} \\ \tan^{-1}_* \frac{\mathsf{fma}\left(\left(-\cos \lambda_1\right) \cdot \sin \lambda_2, \cos \phi_2, \left(\cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2\right)}{\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
      (fma
       (* (- (cos lambda1)) (sin lambda2))
       (cos phi2)
       (* (* (cos lambda2) (sin lambda1)) (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(fma((-cos(lambda1) * sin(lambda2)), cos(phi2), ((cos(lambda2) * sin(lambda1)) * cos(phi2))), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
    }
    
    function code(lambda1, lambda2, phi1, phi2)
    	return atan(fma(Float64(Float64(-cos(lambda1)) * sin(lambda2)), cos(phi2), Float64(Float64(cos(lambda2) * sin(lambda1)) * cos(phi2))), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(sin(phi1) * cos(phi2)) * cos(Float64(lambda1 - lambda2)))))
    end
    
    code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[((-N[Cos[lambda1], $MachinePrecision]) * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision] + N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[lambda1], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $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{\mathsf{fma}\left(\left(-\cos \lambda_1\right) \cdot \sin \lambda_2, \cos \phi_2, \left(\cos \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2\right)}{\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}
    
    Derivation
    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. Add Preprocessing
    3. Step-by-step derivation
      1. lift-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

        \[\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. sub-negN/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
      5. lower-fma.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      6. lower-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      7. lower-cos.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
      8. *-commutativeN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
      9. distribute-lft-neg-inN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
      10. sin-negN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
      11. lower-*.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
      12. sin-negN/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
      13. lower-neg.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
      14. lower-sin.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
      15. lower-cos.f6488.7

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites88.7%

      \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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)} \]
      2. *-commutativeN/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right)}}{\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. lift-fma.f64N/A

        \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right)}}{\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. +-commutativeN/A

        \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\left(-\sin \lambda_2\right) \cdot \cos \lambda_1 + \sin \lambda_1 \cdot \cos \lambda_2\right)}}{\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. distribute-rgt-inN/A

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2 + \left(\sin \lambda_1 \cdot \cos \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)} \]
      6. lower-fma.f64N/A

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

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

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

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

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

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

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

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

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

    Alternative 6: 89.7% accurate, 0.7× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2\\ \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7} \lor \neg \left(\lambda_2 \leq 2400000\right):\\ \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\ \end{array} \end{array} \]
    (FPCore (lambda1 lambda2 phi1 phi2)
     :precision binary64
     (let* ((t_0 (* (cos phi1) (sin phi2)))
            (t_1
             (*
              (fma (sin lambda1) (cos lambda2) (* (- (sin lambda2)) (cos lambda1)))
              (cos phi2))))
       (if (or (<= lambda2 -2.35e-7) (not (<= lambda2 2400000.0)))
         (atan2 t_1 (- t_0 (* (* (cos lambda2) (sin phi1)) (cos phi2))))
         (atan2 t_1 (- t_0 (* (* (sin phi1) (cos phi2)) (cos lambda1)))))))
    double code(double lambda1, double lambda2, double phi1, double phi2) {
    	double t_0 = cos(phi1) * sin(phi2);
    	double t_1 = fma(sin(lambda1), cos(lambda2), (-sin(lambda2) * cos(lambda1))) * cos(phi2);
    	double tmp;
    	if ((lambda2 <= -2.35e-7) || !(lambda2 <= 2400000.0)) {
    		tmp = atan2(t_1, (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
    	} else {
    		tmp = atan2(t_1, (t_0 - ((sin(phi1) * cos(phi2)) * cos(lambda1))));
    	}
    	return tmp;
    }
    
    function code(lambda1, lambda2, phi1, phi2)
    	t_0 = Float64(cos(phi1) * sin(phi2))
    	t_1 = Float64(fma(sin(lambda1), cos(lambda2), Float64(Float64(-sin(lambda2)) * cos(lambda1))) * cos(phi2))
    	tmp = 0.0
    	if ((lambda2 <= -2.35e-7) || !(lambda2 <= 2400000.0))
    		tmp = atan(t_1, Float64(t_0 - Float64(Float64(cos(lambda2) * sin(phi1)) * cos(phi2))));
    	else
    		tmp = atan(t_1, Float64(t_0 - Float64(Float64(sin(phi1) * cos(phi2)) * cos(lambda1))));
    	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[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision] + N[((-N[Sin[lambda2], $MachinePrecision]) * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[lambda2, -2.35e-7], N[Not[LessEqual[lambda2, 2400000.0]], $MachinePrecision]], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := \cos \phi_1 \cdot \sin \phi_2\\
    t_1 := \mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2\\
    \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7} \lor \neg \left(\lambda_2 \leq 2400000\right):\\
    \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\
    
    \mathbf{else}:\\
    \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if lambda2 < -2.35e-7 or 2.4e6 < lambda2

      1. Initial program 61.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. Add Preprocessing
      3. Step-by-step derivation
        1. lift-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

          \[\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. sub-negN/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
        5. lower-fma.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        6. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        7. lower-cos.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        8. *-commutativeN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
        9. distribute-lft-neg-inN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
        10. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
        11. lower-*.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
        12. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
        13. lower-neg.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
        14. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
        15. lower-cos.f6479.2

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites79.2%

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 lambda1 around 0

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

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

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

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

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

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

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

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

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

      if -2.35e-7 < lambda2 < 2.4e6

      1. Initial program 98.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. Add Preprocessing
      3. Step-by-step derivation
        1. lift-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

          \[\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. sub-negN/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
        5. lower-fma.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        6. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        7. lower-cos.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        8. *-commutativeN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
        9. distribute-lft-neg-inN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
        10. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
        11. lower-*.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
        12. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
        13. lower-neg.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
        14. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
        15. lower-cos.f6498.4

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

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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

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

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

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

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

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

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

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

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \lambda_1}} \]
      7. Applied rewrites98.4%

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7} \lor \neg \left(\lambda_2 \leq 2400000\right):\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \lambda_1}\\ \end{array} \]
    5. Add Preprocessing

    Alternative 7: 89.7% accurate, 0.7× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7} \lor \neg \left(\lambda_2 \leq 2400000\right):\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\ \end{array} \end{array} \]
    (FPCore (lambda1 lambda2 phi1 phi2)
     :precision binary64
     (if (or (<= lambda2 -2.35e-7) (not (<= lambda2 2400000.0)))
       (atan2
        (*
         (fma (sin lambda1) (cos lambda2) (* (- (sin lambda2)) (cos lambda1)))
         (cos phi2))
        (- (* (cos phi1) (sin phi2)) (* (* (cos lambda2) (sin phi1)) (cos phi2))))
       (atan2
        (*
         (fma (- (cos lambda1)) (sin lambda2) (* (sin lambda1) (cos lambda2)))
         (cos phi2))
        (-
         (* (sin phi2) (cos phi1))
         (* (* (sin phi1) (cos phi2)) (cos lambda1))))))
    double code(double lambda1, double lambda2, double phi1, double phi2) {
    	double tmp;
    	if ((lambda2 <= -2.35e-7) || !(lambda2 <= 2400000.0)) {
    		tmp = atan2((fma(sin(lambda1), cos(lambda2), (-sin(lambda2) * cos(lambda1))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
    	} else {
    		tmp = atan2((fma(-cos(lambda1), sin(lambda2), (sin(lambda1) * cos(lambda2))) * cos(phi2)), ((sin(phi2) * cos(phi1)) - ((sin(phi1) * cos(phi2)) * cos(lambda1))));
    	}
    	return tmp;
    }
    
    function code(lambda1, lambda2, phi1, phi2)
    	tmp = 0.0
    	if ((lambda2 <= -2.35e-7) || !(lambda2 <= 2400000.0))
    		tmp = atan(Float64(fma(sin(lambda1), cos(lambda2), Float64(Float64(-sin(lambda2)) * cos(lambda1))) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(cos(lambda2) * sin(phi1)) * cos(phi2))));
    	else
    		tmp = atan(Float64(fma(Float64(-cos(lambda1)), sin(lambda2), Float64(sin(lambda1) * cos(lambda2))) * cos(phi2)), Float64(Float64(sin(phi2) * cos(phi1)) - Float64(Float64(sin(phi1) * cos(phi2)) * cos(lambda1))));
    	end
    	return tmp
    end
    
    code[lambda1_, lambda2_, phi1_, phi2_] := If[Or[LessEqual[lambda2, -2.35e-7], N[Not[LessEqual[lambda2, 2400000.0]], $MachinePrecision]], N[ArcTan[N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision] + N[((-N[Sin[lambda2], $MachinePrecision]) * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[((-N[Cos[lambda1], $MachinePrecision]) * N[Sin[lambda2], $MachinePrecision] + N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Sin[phi2], $MachinePrecision] * N[Cos[phi1], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7} \lor \neg \left(\lambda_2 \leq 2400000\right):\\
    \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\
    
    \mathbf{else}:\\
    \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if lambda2 < -2.35e-7 or 2.4e6 < lambda2

      1. Initial program 61.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. Add Preprocessing
      3. Step-by-step derivation
        1. lift-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

          \[\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. sub-negN/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
        5. lower-fma.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        6. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        7. lower-cos.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        8. *-commutativeN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
        9. distribute-lft-neg-inN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
        10. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
        11. lower-*.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
        12. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
        13. lower-neg.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
        14. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
        15. lower-cos.f6479.2

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites79.2%

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 lambda1 around 0

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

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

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

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

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

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

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

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

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

      if -2.35e-7 < lambda2 < 2.4e6

      1. Initial program 98.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. Add Preprocessing
      3. Step-by-step derivation
        1. lift-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

          \[\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. sub-negN/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
        5. lower-fma.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        6. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        7. lower-cos.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
        8. *-commutativeN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
        9. distribute-lft-neg-inN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
        10. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
        11. lower-*.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
        12. sin-negN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
        13. lower-neg.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
        14. lower-sin.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
        15. lower-cos.f6498.4

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

        \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
        1. lift-*.f64N/A

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

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
        3. lift--.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \color{blue}{\left(\lambda_1 - \lambda_2\right)}} \]
        4. cos-diffN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}} \]
        5. distribute-lft-inN/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
        6. lower-+.f64N/A

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
        7. lower-*.f64N/A

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

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

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

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

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

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

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

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

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

        \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}} \]
      7. Taylor expanded in lambda1 around 0

        \[\leadsto \color{blue}{\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(-1 \cdot \left(\cos \lambda_1 \cdot \sin \lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \left(\sin \lambda_2 \cdot \sin \phi_1\right)\right)\right)}} \]
      8. Step-by-step derivation
        1. lower-atan2.f64N/A

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

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

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

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

        \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7} \lor \neg \left(\lambda_2 \leq 2400000\right):\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\ \end{array} \]
      14. Add Preprocessing

      Alternative 8: 89.7% accurate, 0.7× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \sin \phi_1 \cdot \cos \phi_2\\ \mathbf{if}\;\lambda_1 \leq -6 \cdot 10^{-7} \lor \neg \left(\lambda_1 \leq 5.2 \cdot 10^{-7}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - t\_0 \cdot \cos \lambda_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - t\_0 \cdot \mathsf{fma}\left(\sin \lambda_2, \lambda_1, \cos \lambda_2\right)}\\ \end{array} \end{array} \]
      (FPCore (lambda1 lambda2 phi1 phi2)
       :precision binary64
       (let* ((t_0 (* (sin phi1) (cos phi2))))
         (if (or (<= lambda1 -6e-7) (not (<= lambda1 5.2e-7)))
           (atan2
            (*
             (fma (- (cos lambda1)) (sin lambda2) (* (sin lambda1) (cos lambda2)))
             (cos phi2))
            (- (* (sin phi2) (cos phi1)) (* t_0 (cos lambda1))))
           (atan2
            (* (sin (- lambda1 lambda2)) (cos phi2))
            (-
             (* (cos phi1) (sin phi2))
             (* t_0 (fma (sin lambda2) lambda1 (cos lambda2))))))))
      double code(double lambda1, double lambda2, double phi1, double phi2) {
      	double t_0 = sin(phi1) * cos(phi2);
      	double tmp;
      	if ((lambda1 <= -6e-7) || !(lambda1 <= 5.2e-7)) {
      		tmp = atan2((fma(-cos(lambda1), sin(lambda2), (sin(lambda1) * cos(lambda2))) * cos(phi2)), ((sin(phi2) * cos(phi1)) - (t_0 * cos(lambda1))));
      	} else {
      		tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (t_0 * fma(sin(lambda2), lambda1, cos(lambda2)))));
      	}
      	return tmp;
      }
      
      function code(lambda1, lambda2, phi1, phi2)
      	t_0 = Float64(sin(phi1) * cos(phi2))
      	tmp = 0.0
      	if ((lambda1 <= -6e-7) || !(lambda1 <= 5.2e-7))
      		tmp = atan(Float64(fma(Float64(-cos(lambda1)), sin(lambda2), Float64(sin(lambda1) * cos(lambda2))) * cos(phi2)), Float64(Float64(sin(phi2) * cos(phi1)) - Float64(t_0 * cos(lambda1))));
      	else
      		tmp = atan(Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(t_0 * fma(sin(lambda2), lambda1, cos(lambda2)))));
      	end
      	return tmp
      end
      
      code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[lambda1, -6e-7], N[Not[LessEqual[lambda1, 5.2e-7]], $MachinePrecision]], N[ArcTan[N[(N[((-N[Cos[lambda1], $MachinePrecision]) * N[Sin[lambda2], $MachinePrecision] + N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Sin[phi2], $MachinePrecision] * N[Cos[phi1], $MachinePrecision]), $MachinePrecision] - N[(t$95$0 * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 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[(t$95$0 * N[(N[Sin[lambda2], $MachinePrecision] * lambda1 + N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \sin \phi_1 \cdot \cos \phi_2\\
      \mathbf{if}\;\lambda_1 \leq -6 \cdot 10^{-7} \lor \neg \left(\lambda_1 \leq 5.2 \cdot 10^{-7}\right):\\
      \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - t\_0 \cdot \cos \lambda_1}\\
      
      \mathbf{else}:\\
      \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - t\_0 \cdot \mathsf{fma}\left(\sin \lambda_2, \lambda_1, \cos \lambda_2\right)}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if lambda1 < -5.9999999999999997e-7 or 5.19999999999999998e-7 < lambda1

        1. Initial program 60.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. Add Preprocessing
        3. Step-by-step derivation
          1. lift-sin.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

            \[\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. sub-negN/A

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
          5. lower-fma.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
          6. lower-sin.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
          7. lower-cos.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
          8. *-commutativeN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
          9. distribute-lft-neg-inN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
          10. sin-negN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
          11. lower-*.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
          12. sin-negN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
          13. lower-neg.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
          14. lower-sin.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
          15. lower-cos.f6478.5

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites78.5%

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
          1. lift-*.f64N/A

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

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
          3. lift--.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \color{blue}{\left(\lambda_1 - \lambda_2\right)}} \]
          4. cos-diffN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}} \]
          5. distribute-lft-inN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
          6. lower-+.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
          7. lower-*.f64N/A

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

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

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

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

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

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

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

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

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

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}} \]
        7. Taylor expanded in lambda1 around 0

          \[\leadsto \color{blue}{\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(-1 \cdot \left(\cos \lambda_1 \cdot \sin \lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \left(\sin \lambda_2 \cdot \sin \phi_1\right)\right)\right)}} \]
        8. Step-by-step derivation
          1. lower-atan2.f64N/A

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

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

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

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

          if -5.9999999999999997e-7 < lambda1 < 5.19999999999999998e-7

          1. Initial program 99.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. Add Preprocessing
          3. Taylor expanded in lambda1 around 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}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) + -1 \cdot \left(\lambda_1 \cdot \sin \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)\right)}} \]
          4. Step-by-step derivation
            1. +-commutativeN/A

              \[\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(-1 \cdot \left(\lambda_1 \cdot \sin \left(\mathsf{neg}\left(\lambda_2\right)\right)\right) + \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)}} \]
            2. mul-1-negN/A

              \[\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 \left(\color{blue}{\left(\mathsf{neg}\left(\lambda_1 \cdot \sin \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)\right)} + \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)} \]
            3. *-commutativeN/A

              \[\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 \left(\left(\mathsf{neg}\left(\color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \lambda_1}\right)\right) + \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)} \]
            4. distribute-lft-neg-inN/A

              \[\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 \left(\color{blue}{\left(\mathsf{neg}\left(\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)\right) \cdot \lambda_1} + \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)} \]
            5. sin-negN/A

              \[\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 \left(\left(\mathsf{neg}\left(\color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)}\right)\right) \cdot \lambda_1 + \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)} \]
            6. remove-double-negN/A

              \[\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 \left(\color{blue}{\sin \lambda_2} \cdot \lambda_1 + \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)} \]
            7. lower-fma.f64N/A

              \[\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{fma}\left(\sin \lambda_2, \lambda_1, \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)}} \]
            8. lower-sin.f64N/A

              \[\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 \mathsf{fma}\left(\color{blue}{\sin \lambda_2}, \lambda_1, \cos \left(\mathsf{neg}\left(\lambda_2\right)\right)\right)} \]
            9. cos-negN/A

              \[\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 \mathsf{fma}\left(\sin \lambda_2, \lambda_1, \color{blue}{\cos \lambda_2}\right)} \]
            10. lower-cos.f6499.4

              \[\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 \mathsf{fma}\left(\sin \lambda_2, \lambda_1, \color{blue}{\cos \lambda_2}\right)} \]
          5. Applied rewrites99.4%

            \[\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{fma}\left(\sin \lambda_2, \lambda_1, \cos \lambda_2\right)}} \]
        12. Recombined 2 regimes into one program.
        13. Final simplification88.6%

          \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq -6 \cdot 10^{-7} \lor \neg \left(\lambda_1 \leq 5.2 \cdot 10^{-7}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-\cos \lambda_1, \sin \lambda_2, \sin \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\ \mathbf{else}:\\ \;\;\;\;\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 \mathsf{fma}\left(\sin \lambda_2, \lambda_1, \cos \lambda_2\right)}\\ \end{array} \]
        14. Add Preprocessing

        Alternative 9: 89.7% accurate, 0.7× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2\\ \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7}:\\ \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{elif}\;\lambda_2 \leq 2400000:\\ \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \lambda_2}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (* (cos phi1) (sin phi2)))
                (t_1
                 (*
                  (fma (sin lambda1) (cos lambda2) (* (- (sin lambda2)) (cos lambda1)))
                  (cos phi2))))
           (if (<= lambda2 -2.35e-7)
             (atan2 t_1 (- t_0 (* (* (cos lambda2) (sin phi1)) (cos phi2))))
             (if (<= lambda2 2400000.0)
               (atan2 t_1 (- t_0 (* (* (sin phi1) (cos phi2)) (cos lambda1))))
               (atan2 t_1 (- t_0 (* (* (cos phi2) (sin phi1)) (cos lambda2))))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = cos(phi1) * sin(phi2);
        	double t_1 = fma(sin(lambda1), cos(lambda2), (-sin(lambda2) * cos(lambda1))) * cos(phi2);
        	double tmp;
        	if (lambda2 <= -2.35e-7) {
        		tmp = atan2(t_1, (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
        	} else if (lambda2 <= 2400000.0) {
        		tmp = atan2(t_1, (t_0 - ((sin(phi1) * cos(phi2)) * cos(lambda1))));
        	} else {
        		tmp = atan2(t_1, (t_0 - ((cos(phi2) * sin(phi1)) * cos(lambda2))));
        	}
        	return tmp;
        }
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = Float64(cos(phi1) * sin(phi2))
        	t_1 = Float64(fma(sin(lambda1), cos(lambda2), Float64(Float64(-sin(lambda2)) * cos(lambda1))) * cos(phi2))
        	tmp = 0.0
        	if (lambda2 <= -2.35e-7)
        		tmp = atan(t_1, Float64(t_0 - Float64(Float64(cos(lambda2) * sin(phi1)) * cos(phi2))));
        	elseif (lambda2 <= 2400000.0)
        		tmp = atan(t_1, Float64(t_0 - Float64(Float64(sin(phi1) * cos(phi2)) * cos(lambda1))));
        	else
        		tmp = atan(t_1, Float64(t_0 - Float64(Float64(cos(phi2) * sin(phi1)) * cos(lambda2))));
        	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[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision] + N[((-N[Sin[lambda2], $MachinePrecision]) * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[lambda2, -2.35e-7], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[lambda2, 2400000.0], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$1 / N[(t$95$0 - N[(N[(N[Cos[phi2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \cos \phi_1 \cdot \sin \phi_2\\
        t_1 := \mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2\\
        \mathbf{if}\;\lambda_2 \leq -2.35 \cdot 10^{-7}:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\
        
        \mathbf{elif}\;\lambda_2 \leq 2400000:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_0 - \left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \cos \lambda_2}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if lambda2 < -2.35e-7

          1. Initial program 61.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

              \[\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. sub-negN/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
            5. lower-fma.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            6. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            7. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            8. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
            9. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
            10. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
            11. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
            12. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
            13. lower-neg.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
            14. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
            15. lower-cos.f6480.1

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites80.1%

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 lambda1 around 0

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

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

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

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

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

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

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

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

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

          if -2.35e-7 < lambda2 < 2.4e6

          1. Initial program 98.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

              \[\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. sub-negN/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
            5. lower-fma.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            6. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            7. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            8. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
            9. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
            10. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
            11. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
            12. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
            13. lower-neg.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
            14. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
            15. lower-cos.f6498.4

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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

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

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

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \lambda_1}} \]
          7. Applied rewrites98.4%

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

          if 2.4e6 < lambda2

          1. Initial program 60.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

              \[\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. sub-negN/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
            5. lower-fma.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            6. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            7. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            8. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
            9. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
            10. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
            11. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
            12. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
            13. lower-neg.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
            14. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
            15. lower-cos.f6478.1

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites78.1%

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Step-by-step derivation
            1. lift-*.f64N/A

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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}{\cos \left(\lambda_1 - \lambda_2\right)}} \]
            3. lift--.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \color{blue}{\left(\lambda_1 - \lambda_2\right)}} \]
            4. cos-diffN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}} \]
            5. distribute-lft-inN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
            6. lower-+.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}} \]
            7. lower-*.f64N/A

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

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

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

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

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

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

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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 \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}} \]
          7. Taylor expanded in lambda1 around 0

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \cos \lambda_1\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)}} \]
          8. Step-by-step derivation
            1. *-commutativeN/A

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

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

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

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

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

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

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

        Alternative 10: 89.8% accurate, 0.7× speedup?

        \[\begin{array}{l} \\ \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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)} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (atan2
          (*
           (fma (sin lambda1) (cos lambda2) (* (- (sin lambda2)) (cos lambda1)))
           (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((fma(sin(lambda1), cos(lambda2), (-sin(lambda2) * cos(lambda1))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
        }
        
        function code(lambda1, lambda2, phi1, phi2)
        	return atan(Float64(fma(sin(lambda1), cos(lambda2), Float64(Float64(-sin(lambda2)) * cos(lambda1))) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(sin(phi1) * cos(phi2)) * cos(Float64(lambda1 - lambda2)))))
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision] + N[((-N[Sin[lambda2], $MachinePrecision]) * N[Cos[lambda1], $MachinePrecision]), $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{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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)}
        \end{array}
        
        Derivation
        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. Add Preprocessing
        3. Step-by-step derivation
          1. lift-sin.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

            \[\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. sub-negN/A

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
          5. lower-fma.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
          6. lower-sin.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
          7. lower-cos.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
          8. *-commutativeN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
          9. distribute-lft-neg-inN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
          10. sin-negN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
          11. lower-*.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
          12. sin-negN/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
          13. lower-neg.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
          14. lower-sin.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
          15. lower-cos.f6488.7

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites88.7%

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Add Preprocessing

        Alternative 11: 88.2% accurate, 0.8× speedup?

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

          1. Initial program 83.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. *-commutativeN/A

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\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. lift--.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\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. sub-negN/A

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

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\mathsf{neg}\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
            7. lift-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
            8. lift-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\left(\sin \phi_1 \cdot \cos \phi_2\right)} \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
            9. associate-*l*N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
            10. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
            11. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
            12. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) \cdot \cos \phi_2} + \cos \phi_1 \cdot \sin \phi_2} \]
            13. lower-fma.f64N/A

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

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

          if -0.010999999999999999 < phi1 < 7.2e-9

          1. Initial program 83.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

              \[\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. sub-negN/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
            5. lower-fma.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            6. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            7. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            8. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
            9. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
            10. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
            11. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
            12. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
            13. lower-neg.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
            14. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
            15. lower-cos.f6499.8

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites99.8%

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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 phi1 around 0

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

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

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

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

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

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

          if 7.2e-9 < phi1

          1. Initial program 69.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

              \[\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. sub-negN/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
            5. lower-fma.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            6. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            7. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            8. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
            9. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
            10. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
            11. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
            12. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
            13. lower-neg.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
            14. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
            15. lower-cos.f6472.7

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites72.7%

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Applied rewrites69.2%

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

        Alternative 12: 88.2% accurate, 0.9× speedup?

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

          1. Initial program 84.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\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. lower-*.f6484.3

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\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. lift--.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\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. sub-negN/A

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

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\mathsf{neg}\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
            7. lift-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
            8. lift-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\left(\sin \phi_1 \cdot \cos \phi_2\right)} \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
            9. associate-*l*N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
            10. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
            11. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
            12. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) \cdot \cos \phi_2} + \cos \phi_1 \cdot \sin \phi_2} \]
            13. lower-fma.f64N/A

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

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

          if -3.1000000000000001e-12 < phi1 < 1.75e-9

          1. Initial program 83.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6483.3

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites83.3%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

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

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

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

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\left(\color{blue}{\left(\lambda_2 + \lambda_1\right)} \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot \frac{1}{\lambda_1 + \lambda_2}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. inv-powN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\left(\left(\lambda_2 + \lambda_1\right) \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot \color{blue}{{\left(\lambda_1 + \lambda_2\right)}^{-1}}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. lower-pow.f64N/A

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\left(\left(\lambda_2 + \lambda_1\right) \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot {\left(\lambda_2 + \lambda_1\right)}^{-1}\right)} \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          11. Step-by-step derivation
            1. lift-sin.f64N/A

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

              \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\left(\left(\lambda_2 + \lambda_1\right) \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot {\left(\lambda_2 + \lambda_1\right)}^{-1}\right)} \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            3. lift-pow.f64N/A

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

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\frac{\left(\lambda_1 + \lambda_2\right) \cdot \color{blue}{\left(\lambda_1 - \lambda_2\right)}}{\lambda_2 + \lambda_1}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. difference-of-squaresN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\frac{\color{blue}{\lambda_1 \cdot \lambda_1 - \lambda_2 \cdot \lambda_2}}{\lambda_2 + \lambda_1}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. lift-+.f64N/A

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

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\frac{\lambda_1 \cdot \lambda_1 - \lambda_2 \cdot \lambda_2}{\color{blue}{\lambda_1 + \lambda_2}}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            13. flip--N/A

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

              \[\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 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            15. lift-sin.f64N/A

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \color{blue}{\sin \lambda_2}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            20. cancel-sign-sub-invN/A

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

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

          if 1.75e-9 < phi1

          1. Initial program 69.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. Add Preprocessing
          3. Step-by-step derivation
            1. lift-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. lift--.f64N/A

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

              \[\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. sub-negN/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \left(\mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\right)\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)} \]
            5. lower-fma.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            6. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\color{blue}{\sin \lambda_1}, \cos \lambda_2, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            7. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \color{blue}{\cos \lambda_2}, \mathsf{neg}\left(\cos \lambda_1 \cdot \sin \lambda_2\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)} \]
            8. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \mathsf{neg}\left(\color{blue}{\sin \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)} \]
            9. distribute-lft-neg-inN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right) \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)} \]
            10. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right)} \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)} \]
            11. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\sin \left(\mathsf{neg}\left(\lambda_2\right)\right) \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)} \]
            12. sin-negN/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(\mathsf{neg}\left(\sin \lambda_2\right)\right)} \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)} \]
            13. lower-neg.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \color{blue}{\left(-\sin \lambda_2\right)} \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)} \]
            14. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\color{blue}{\sin \lambda_2}\right) \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)} \]
            15. lower-cos.f6472.7

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \cdot \color{blue}{\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. Applied rewrites72.7%

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\mathsf{fma}\left(\sin \lambda_1, \cos \lambda_2, \left(-\sin \lambda_2\right) \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. Applied rewrites69.2%

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

        Alternative 13: 69.5% accurate, 1.0× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ t_2 := \cos \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\lambda_2 \leq -2.8 \cdot 10^{+41}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;\lambda_2 \leq -1.25 \cdot 10^{-107}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\left(\sin \left(\phi_1 + \phi_2\right) + \sin \left(\phi_1 - \phi_2\right)\right) \cdot 0.5\right) \cdot t\_2}\\ \mathbf{elif}\;\lambda_2 \leq 1.75 \cdot 10^{-98}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot t\_2}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (* (cos phi1) (sin phi2)))
                (t_1
                 (atan2
                  (* (sin (- lambda2)) (cos phi2))
                  (- t_0 (* (* (cos lambda2) (sin phi1)) (cos phi2)))))
                (t_2 (cos (- lambda1 lambda2))))
           (if (<= lambda2 -2.8e+41)
             t_1
             (if (<= lambda2 -1.25e-107)
               (atan2
                (* (sin (- lambda1 lambda2)) (cos phi2))
                (-
                 (sin phi2)
                 (* (* (+ (sin (+ phi1 phi2)) (sin (- phi1 phi2))) 0.5) t_2)))
               (if (<= lambda2 1.75e-98)
                 (atan2
                  (* (sin lambda1) (cos phi2))
                  (- t_0 (* (* (sin phi1) (cos phi2)) t_2)))
                 t_1)))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = cos(phi1) * sin(phi2);
        	double t_1 = atan2((sin(-lambda2) * cos(phi2)), (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
        	double t_2 = cos((lambda1 - lambda2));
        	double tmp;
        	if (lambda2 <= -2.8e+41) {
        		tmp = t_1;
        	} else if (lambda2 <= -1.25e-107) {
        		tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), (sin(phi2) - (((sin((phi1 + phi2)) + sin((phi1 - phi2))) * 0.5) * t_2)));
        	} else if (lambda2 <= 1.75e-98) {
        		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - ((sin(phi1) * cos(phi2)) * t_2)));
        	} else {
        		tmp = 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) :: t_2
            real(8) :: tmp
            t_0 = cos(phi1) * sin(phi2)
            t_1 = atan2((sin(-lambda2) * cos(phi2)), (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))))
            t_2 = cos((lambda1 - lambda2))
            if (lambda2 <= (-2.8d+41)) then
                tmp = t_1
            else if (lambda2 <= (-1.25d-107)) then
                tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), (sin(phi2) - (((sin((phi1 + phi2)) + sin((phi1 - phi2))) * 0.5d0) * t_2)))
            else if (lambda2 <= 1.75d-98) then
                tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - ((sin(phi1) * cos(phi2)) * t_2)))
            else
                tmp = 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.atan2((Math.sin(-lambda2) * Math.cos(phi2)), (t_0 - ((Math.cos(lambda2) * Math.sin(phi1)) * Math.cos(phi2))));
        	double t_2 = Math.cos((lambda1 - lambda2));
        	double tmp;
        	if (lambda2 <= -2.8e+41) {
        		tmp = t_1;
        	} else if (lambda2 <= -1.25e-107) {
        		tmp = Math.atan2((Math.sin((lambda1 - lambda2)) * Math.cos(phi2)), (Math.sin(phi2) - (((Math.sin((phi1 + phi2)) + Math.sin((phi1 - phi2))) * 0.5) * t_2)));
        	} else if (lambda2 <= 1.75e-98) {
        		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (t_0 - ((Math.sin(phi1) * Math.cos(phi2)) * t_2)));
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        def code(lambda1, lambda2, phi1, phi2):
        	t_0 = math.cos(phi1) * math.sin(phi2)
        	t_1 = math.atan2((math.sin(-lambda2) * math.cos(phi2)), (t_0 - ((math.cos(lambda2) * math.sin(phi1)) * math.cos(phi2))))
        	t_2 = math.cos((lambda1 - lambda2))
        	tmp = 0
        	if lambda2 <= -2.8e+41:
        		tmp = t_1
        	elif lambda2 <= -1.25e-107:
        		tmp = math.atan2((math.sin((lambda1 - lambda2)) * math.cos(phi2)), (math.sin(phi2) - (((math.sin((phi1 + phi2)) + math.sin((phi1 - phi2))) * 0.5) * t_2)))
        	elif lambda2 <= 1.75e-98:
        		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), (t_0 - ((math.sin(phi1) * math.cos(phi2)) * t_2)))
        	else:
        		tmp = t_1
        	return tmp
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = Float64(cos(phi1) * sin(phi2))
        	t_1 = atan(Float64(sin(Float64(-lambda2)) * cos(phi2)), Float64(t_0 - Float64(Float64(cos(lambda2) * sin(phi1)) * cos(phi2))))
        	t_2 = cos(Float64(lambda1 - lambda2))
        	tmp = 0.0
        	if (lambda2 <= -2.8e+41)
        		tmp = t_1;
        	elseif (lambda2 <= -1.25e-107)
        		tmp = atan(Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2)), Float64(sin(phi2) - Float64(Float64(Float64(sin(Float64(phi1 + phi2)) + sin(Float64(phi1 - phi2))) * 0.5) * t_2)));
        	elseif (lambda2 <= 1.75e-98)
        		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(t_0 - Float64(Float64(sin(phi1) * cos(phi2)) * t_2)));
        	else
        		tmp = t_1;
        	end
        	return tmp
        end
        
        function tmp_2 = code(lambda1, lambda2, phi1, phi2)
        	t_0 = cos(phi1) * sin(phi2);
        	t_1 = atan2((sin(-lambda2) * cos(phi2)), (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
        	t_2 = cos((lambda1 - lambda2));
        	tmp = 0.0;
        	if (lambda2 <= -2.8e+41)
        		tmp = t_1;
        	elseif (lambda2 <= -1.25e-107)
        		tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), (sin(phi2) - (((sin((phi1 + phi2)) + sin((phi1 - phi2))) * 0.5) * t_2)));
        	elseif (lambda2 <= 1.75e-98)
        		tmp = atan2((sin(lambda1) * cos(phi2)), (t_0 - ((sin(phi1) * cos(phi2)) * t_2)));
        	else
        		tmp = 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[ArcTan[N[(N[Sin[(-lambda2)], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[lambda2, -2.8e+41], t$95$1, If[LessEqual[lambda2, -1.25e-107], N[ArcTan[N[(N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[(N[(N[Sin[N[(phi1 + phi2), $MachinePrecision]], $MachinePrecision] + N[Sin[N[(phi1 - phi2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * 0.5), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[lambda2, 1.75e-98], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], t$95$1]]]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \cos \phi_1 \cdot \sin \phi_2\\
        t_1 := \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\
        t_2 := \cos \left(\lambda_1 - \lambda_2\right)\\
        \mathbf{if}\;\lambda_2 \leq -2.8 \cdot 10^{+41}:\\
        \;\;\;\;t\_1\\
        
        \mathbf{elif}\;\lambda_2 \leq -1.25 \cdot 10^{-107}:\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\left(\sin \left(\phi_1 + \phi_2\right) + \sin \left(\phi_1 - \phi_2\right)\right) \cdot 0.5\right) \cdot t\_2}\\
        
        \mathbf{elif}\;\lambda_2 \leq 1.75 \cdot 10^{-98}:\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot t\_2}\\
        
        \mathbf{else}:\\
        \;\;\;\;t\_1\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if lambda2 < -2.7999999999999999e41 or 1.7500000000000001e-98 < lambda2

          1. Initial program 63.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. Add Preprocessing
          3. Taylor expanded in lambda1 around 0

            \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(-1 \cdot \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. Step-by-step derivation
            1. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\mathsf{neg}\left(\lambda_2\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. lower-neg.f6459.3

              \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites59.3%

            \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in lambda1 around 0

            \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \phi_2 \cdot \left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right)}} \]
          7. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}} \]
            2. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}} \]
            3. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right)} \cdot \cos \phi_2} \]
            4. cos-negN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_2} \cdot \sin \phi_1\right) \cdot \cos \phi_2} \]
            5. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_2} \cdot \sin \phi_1\right) \cdot \cos \phi_2} \]
            6. lower-sin.f64N/A

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

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

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

          if -2.7999999999999999e41 < lambda2 < -1.24999999999999993e-107

          1. Initial program 90.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6486.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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites86.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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Step-by-step derivation
            1. lift-*.f64N/A

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

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

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

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\left(\color{blue}{\sin \left(\phi_1 + \phi_2\right)} + \sin \left(\phi_1 - \phi_2\right)\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. lower-+.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\left(\sin \color{blue}{\left(\phi_1 + \phi_2\right)} + \sin \left(\phi_1 - \phi_2\right)\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. lower-sin.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\left(\sin \left(\phi_1 + \phi_2\right) + \color{blue}{\sin \left(\phi_1 - \phi_2\right)}\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            12. lower--.f64N/A

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

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

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

          if -1.24999999999999993e-107 < lambda2 < 1.7500000000000001e-98

          1. Initial program 99.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. Add Preprocessing
          3. Taylor expanded in lambda2 around 0

            \[\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)} \]
          4. Step-by-step derivation
            1. lower-sin.f6492.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)} \]
          5. Applied rewrites92.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)} \]
        3. Recombined 3 regimes into one program.
        4. Final simplification74.1%

          \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_2 \leq -2.8 \cdot 10^{+41}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{elif}\;\lambda_2 \leq -1.25 \cdot 10^{-107}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\left(\sin \left(\phi_1 + \phi_2\right) + \sin \left(\phi_1 - \phi_2\right)\right) \cdot 0.5\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{elif}\;\lambda_2 \leq 1.75 \cdot 10^{-98}:\\ \;\;\;\;\tan^{-1}_* \frac{\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)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \end{array} \]
        5. Add Preprocessing

        Alternative 14: 79.4% accurate, 1.0× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_2 \leq -1.55 \cdot 10^{+16} \lor \neg \left(\lambda_2 \leq 7800000\right):\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (* (cos phi1) (sin phi2))))
           (if (or (<= lambda2 -1.55e+16) (not (<= lambda2 7800000.0)))
             (atan2
              (* (sin (- lambda2)) (cos phi2))
              (- t_0 (* (* (cos lambda2) (sin phi1)) (cos phi2))))
             (atan2
              (* (sin (- lambda1 lambda2)) (cos phi2))
              (- t_0 (* (* (sin phi1) (cos phi2)) (cos lambda1)))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = cos(phi1) * sin(phi2);
        	double tmp;
        	if ((lambda2 <= -1.55e+16) || !(lambda2 <= 7800000.0)) {
        		tmp = atan2((sin(-lambda2) * cos(phi2)), (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
        	} else {
        		tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), (t_0 - ((sin(phi1) * cos(phi2)) * cos(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 ((lambda2 <= (-1.55d+16)) .or. (.not. (lambda2 <= 7800000.0d0))) then
                tmp = atan2((sin(-lambda2) * cos(phi2)), (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))))
            else
                tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), (t_0 - ((sin(phi1) * cos(phi2)) * cos(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 ((lambda2 <= -1.55e+16) || !(lambda2 <= 7800000.0)) {
        		tmp = Math.atan2((Math.sin(-lambda2) * Math.cos(phi2)), (t_0 - ((Math.cos(lambda2) * Math.sin(phi1)) * Math.cos(phi2))));
        	} else {
        		tmp = Math.atan2((Math.sin((lambda1 - lambda2)) * Math.cos(phi2)), (t_0 - ((Math.sin(phi1) * Math.cos(phi2)) * Math.cos(lambda1))));
        	}
        	return tmp;
        }
        
        def code(lambda1, lambda2, phi1, phi2):
        	t_0 = math.cos(phi1) * math.sin(phi2)
        	tmp = 0
        	if (lambda2 <= -1.55e+16) or not (lambda2 <= 7800000.0):
        		tmp = math.atan2((math.sin(-lambda2) * math.cos(phi2)), (t_0 - ((math.cos(lambda2) * math.sin(phi1)) * math.cos(phi2))))
        	else:
        		tmp = math.atan2((math.sin((lambda1 - lambda2)) * math.cos(phi2)), (t_0 - ((math.sin(phi1) * math.cos(phi2)) * math.cos(lambda1))))
        	return tmp
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = Float64(cos(phi1) * sin(phi2))
        	tmp = 0.0
        	if ((lambda2 <= -1.55e+16) || !(lambda2 <= 7800000.0))
        		tmp = atan(Float64(sin(Float64(-lambda2)) * cos(phi2)), Float64(t_0 - Float64(Float64(cos(lambda2) * sin(phi1)) * cos(phi2))));
        	else
        		tmp = atan(Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2)), Float64(t_0 - Float64(Float64(sin(phi1) * cos(phi2)) * cos(lambda1))));
        	end
        	return tmp
        end
        
        function tmp_2 = code(lambda1, lambda2, phi1, phi2)
        	t_0 = cos(phi1) * sin(phi2);
        	tmp = 0.0;
        	if ((lambda2 <= -1.55e+16) || ~((lambda2 <= 7800000.0)))
        		tmp = atan2((sin(-lambda2) * cos(phi2)), (t_0 - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
        	else
        		tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), (t_0 - ((sin(phi1) * cos(phi2)) * cos(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[Or[LessEqual[lambda2, -1.55e+16], N[Not[LessEqual[lambda2, 7800000.0]], $MachinePrecision]], N[ArcTan[N[(N[Sin[(-lambda2)], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - N[(N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \cos \phi_1 \cdot \sin \phi_2\\
        \mathbf{if}\;\lambda_2 \leq -1.55 \cdot 10^{+16} \lor \neg \left(\lambda_2 \leq 7800000\right):\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{t\_0 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{t\_0 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_1}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if lambda2 < -1.55e16 or 7.8e6 < lambda2

          1. Initial program 60.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. Add Preprocessing
          3. Taylor expanded in lambda1 around 0

            \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(-1 \cdot \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. Step-by-step derivation
            1. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\mathsf{neg}\left(\lambda_2\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. lower-neg.f6459.0

              \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites59.0%

            \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in lambda1 around 0

            \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \phi_2 \cdot \left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right)}} \]
          7. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}} \]
            2. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}} \]
            3. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right)} \cdot \cos \phi_2} \]
            4. cos-negN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_2} \cdot \sin \phi_1\right) \cdot \cos \phi_2} \]
            5. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_2} \cdot \sin \phi_1\right) \cdot \cos \phi_2} \]
            6. lower-sin.f64N/A

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

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

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

          if -1.55e16 < lambda2 < 7.8e6

          1. Initial program 97.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. Add Preprocessing
          3. Taylor expanded in lambda2 around 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_1}} \]
          4. Step-by-step derivation
            1. lower-cos.f6497.7

              \[\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_1}} \]
          5. Applied rewrites97.7%

            \[\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_1}} \]
        3. Recombined 2 regimes into one program.
        4. Final simplification78.4%

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

        Alternative 15: 79.3% accurate, 1.0× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \sin \phi_1 \cdot \cos \phi_2\\ t_1 := \sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2\\ t_2 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_1 \leq -6 \cdot 10^{-7}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t\_2 - t\_0 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{elif}\;\lambda_1 \leq 0.00016:\\ \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_2 - t\_0 \cdot \cos \lambda_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_2 - t\_0 \cdot \cos \lambda_1}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (* (sin phi1) (cos phi2)))
                (t_1 (* (sin (- lambda1 lambda2)) (cos phi2)))
                (t_2 (* (cos phi1) (sin phi2))))
           (if (<= lambda1 -6e-7)
             (atan2
              (* (sin lambda1) (cos phi2))
              (- t_2 (* t_0 (cos (- lambda1 lambda2)))))
             (if (<= lambda1 0.00016)
               (atan2 t_1 (- t_2 (* t_0 (cos lambda2))))
               (atan2 t_1 (- t_2 (* t_0 (cos lambda1))))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = sin(phi1) * cos(phi2);
        	double t_1 = sin((lambda1 - lambda2)) * cos(phi2);
        	double t_2 = cos(phi1) * sin(phi2);
        	double tmp;
        	if (lambda1 <= -6e-7) {
        		tmp = atan2((sin(lambda1) * cos(phi2)), (t_2 - (t_0 * cos((lambda1 - lambda2)))));
        	} else if (lambda1 <= 0.00016) {
        		tmp = atan2(t_1, (t_2 - (t_0 * cos(lambda2))));
        	} else {
        		tmp = atan2(t_1, (t_2 - (t_0 * cos(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) :: t_2
            real(8) :: tmp
            t_0 = sin(phi1) * cos(phi2)
            t_1 = sin((lambda1 - lambda2)) * cos(phi2)
            t_2 = cos(phi1) * sin(phi2)
            if (lambda1 <= (-6d-7)) then
                tmp = atan2((sin(lambda1) * cos(phi2)), (t_2 - (t_0 * cos((lambda1 - lambda2)))))
            else if (lambda1 <= 0.00016d0) then
                tmp = atan2(t_1, (t_2 - (t_0 * cos(lambda2))))
            else
                tmp = atan2(t_1, (t_2 - (t_0 * cos(lambda1))))
            end if
            code = tmp
        end function
        
        public static double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = Math.sin(phi1) * Math.cos(phi2);
        	double t_1 = Math.sin((lambda1 - lambda2)) * Math.cos(phi2);
        	double t_2 = Math.cos(phi1) * Math.sin(phi2);
        	double tmp;
        	if (lambda1 <= -6e-7) {
        		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (t_2 - (t_0 * Math.cos((lambda1 - lambda2)))));
        	} else if (lambda1 <= 0.00016) {
        		tmp = Math.atan2(t_1, (t_2 - (t_0 * Math.cos(lambda2))));
        	} else {
        		tmp = Math.atan2(t_1, (t_2 - (t_0 * Math.cos(lambda1))));
        	}
        	return tmp;
        }
        
        def code(lambda1, lambda2, phi1, phi2):
        	t_0 = math.sin(phi1) * math.cos(phi2)
        	t_1 = math.sin((lambda1 - lambda2)) * math.cos(phi2)
        	t_2 = math.cos(phi1) * math.sin(phi2)
        	tmp = 0
        	if lambda1 <= -6e-7:
        		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), (t_2 - (t_0 * math.cos((lambda1 - lambda2)))))
        	elif lambda1 <= 0.00016:
        		tmp = math.atan2(t_1, (t_2 - (t_0 * math.cos(lambda2))))
        	else:
        		tmp = math.atan2(t_1, (t_2 - (t_0 * math.cos(lambda1))))
        	return tmp
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = Float64(sin(phi1) * cos(phi2))
        	t_1 = Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2))
        	t_2 = Float64(cos(phi1) * sin(phi2))
        	tmp = 0.0
        	if (lambda1 <= -6e-7)
        		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(t_2 - Float64(t_0 * cos(Float64(lambda1 - lambda2)))));
        	elseif (lambda1 <= 0.00016)
        		tmp = atan(t_1, Float64(t_2 - Float64(t_0 * cos(lambda2))));
        	else
        		tmp = atan(t_1, Float64(t_2 - Float64(t_0 * cos(lambda1))));
        	end
        	return tmp
        end
        
        function tmp_2 = code(lambda1, lambda2, phi1, phi2)
        	t_0 = sin(phi1) * cos(phi2);
        	t_1 = sin((lambda1 - lambda2)) * cos(phi2);
        	t_2 = cos(phi1) * sin(phi2);
        	tmp = 0.0;
        	if (lambda1 <= -6e-7)
        		tmp = atan2((sin(lambda1) * cos(phi2)), (t_2 - (t_0 * cos((lambda1 - lambda2)))));
        	elseif (lambda1 <= 0.00016)
        		tmp = atan2(t_1, (t_2 - (t_0 * cos(lambda2))));
        	else
        		tmp = atan2(t_1, (t_2 - (t_0 * cos(lambda1))));
        	end
        	tmp_2 = tmp;
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[lambda1, -6e-7], 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, 0.00016], N[ArcTan[t$95$1 / N[(t$95$2 - N[(t$95$0 * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$1 / N[(t$95$2 - N[(t$95$0 * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \sin \phi_1 \cdot \cos \phi_2\\
        t_1 := \sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2\\
        t_2 := \cos \phi_1 \cdot \sin \phi_2\\
        \mathbf{if}\;\lambda_1 \leq -6 \cdot 10^{-7}:\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t\_2 - t\_0 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\
        
        \mathbf{elif}\;\lambda_1 \leq 0.00016:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_2 - t\_0 \cdot \cos \lambda_2}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_1}{t\_2 - t\_0 \cdot \cos \lambda_1}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if lambda1 < -5.9999999999999997e-7

          1. Initial program 64.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. Add Preprocessing
          3. Taylor expanded in lambda2 around 0

            \[\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)} \]
          4. Step-by-step derivation
            1. lower-sin.f6465.5

              \[\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)} \]
          5. Applied rewrites65.5%

            \[\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 -5.9999999999999997e-7 < lambda1 < 1.60000000000000013e-4

          1. Initial program 99.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. Add Preprocessing
          3. Taylor expanded in lambda1 around 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(\mathsf{neg}\left(\lambda_2\right)\right)}} \]
          4. Step-by-step derivation
            1. cos-negN/A

              \[\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}} \]
            2. lower-cos.f6499.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. Applied rewrites99.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}} \]

          if 1.60000000000000013e-4 < lambda1

          1. Initial program 55.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. Add Preprocessing
          3. Taylor expanded in lambda2 around 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_1}} \]
          4. Step-by-step derivation
            1. lower-cos.f6455.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_1}} \]
          5. Applied rewrites55.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_1}} \]
        3. Recombined 3 regimes into one program.
        4. Final simplification79.6%

          \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 \leq -6 \cdot 10^{-7}:\\ \;\;\;\;\tan^{-1}_* \frac{\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)}\\ \mathbf{elif}\;\lambda_1 \leq 0.00016:\\ \;\;\;\;\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 \lambda_2}\\ \mathbf{else}:\\ \;\;\;\;\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 \lambda_1}\\ \end{array} \]
        5. Add Preprocessing

        Alternative 16: 70.3% accurate, 1.0× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\lambda_2 \leq -2.5 \cdot 10^{+40} \lor \neg \left(\lambda_2 \leq 7.6 \cdot 10^{-25}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(\left(1 - \frac{\lambda_2}{\lambda_1}\right) \cdot \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (if (or (<= lambda2 -2.5e+40) (not (<= lambda2 7.6e-25)))
           (atan2
            (* (sin (- lambda2)) (cos phi2))
            (- (* (cos phi1) (sin phi2)) (* (* (cos lambda2) (sin phi1)) (cos phi2))))
           (atan2
            (* (sin (* (- 1.0 (/ lambda2 lambda1)) lambda1)) (cos phi2))
            (- (sin phi2) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2)))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double tmp;
        	if ((lambda2 <= -2.5e+40) || !(lambda2 <= 7.6e-25)) {
        		tmp = atan2((sin(-lambda2) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
        	} else {
        		tmp = atan2((sin(((1.0 - (lambda2 / lambda1)) * lambda1)) * cos(phi2)), (sin(phi2) - ((sin(phi1) * cos(phi2)) * cos((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) :: tmp
            if ((lambda2 <= (-2.5d+40)) .or. (.not. (lambda2 <= 7.6d-25))) then
                tmp = atan2((sin(-lambda2) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((cos(lambda2) * sin(phi1)) * cos(phi2))))
            else
                tmp = atan2((sin(((1.0d0 - (lambda2 / lambda1)) * lambda1)) * cos(phi2)), (sin(phi2) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))))
            end if
            code = tmp
        end function
        
        public static double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double tmp;
        	if ((lambda2 <= -2.5e+40) || !(lambda2 <= 7.6e-25)) {
        		tmp = Math.atan2((Math.sin(-lambda2) * Math.cos(phi2)), ((Math.cos(phi1) * Math.sin(phi2)) - ((Math.cos(lambda2) * Math.sin(phi1)) * Math.cos(phi2))));
        	} else {
        		tmp = Math.atan2((Math.sin(((1.0 - (lambda2 / lambda1)) * lambda1)) * Math.cos(phi2)), (Math.sin(phi2) - ((Math.sin(phi1) * Math.cos(phi2)) * Math.cos((lambda1 - lambda2)))));
        	}
        	return tmp;
        }
        
        def code(lambda1, lambda2, phi1, phi2):
        	tmp = 0
        	if (lambda2 <= -2.5e+40) or not (lambda2 <= 7.6e-25):
        		tmp = math.atan2((math.sin(-lambda2) * math.cos(phi2)), ((math.cos(phi1) * math.sin(phi2)) - ((math.cos(lambda2) * math.sin(phi1)) * math.cos(phi2))))
        	else:
        		tmp = math.atan2((math.sin(((1.0 - (lambda2 / lambda1)) * lambda1)) * math.cos(phi2)), (math.sin(phi2) - ((math.sin(phi1) * math.cos(phi2)) * math.cos((lambda1 - lambda2)))))
        	return tmp
        
        function code(lambda1, lambda2, phi1, phi2)
        	tmp = 0.0
        	if ((lambda2 <= -2.5e+40) || !(lambda2 <= 7.6e-25))
        		tmp = atan(Float64(sin(Float64(-lambda2)) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(cos(lambda2) * sin(phi1)) * cos(phi2))));
        	else
        		tmp = atan(Float64(sin(Float64(Float64(1.0 - Float64(lambda2 / lambda1)) * lambda1)) * cos(phi2)), Float64(sin(phi2) - Float64(Float64(sin(phi1) * cos(phi2)) * cos(Float64(lambda1 - lambda2)))));
        	end
        	return tmp
        end
        
        function tmp_2 = code(lambda1, lambda2, phi1, phi2)
        	tmp = 0.0;
        	if ((lambda2 <= -2.5e+40) || ~((lambda2 <= 7.6e-25)))
        		tmp = atan2((sin(-lambda2) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((cos(lambda2) * sin(phi1)) * cos(phi2))));
        	else
        		tmp = atan2((sin(((1.0 - (lambda2 / lambda1)) * lambda1)) * cos(phi2)), (sin(phi2) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
        	end
        	tmp_2 = tmp;
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := If[Or[LessEqual[lambda2, -2.5e+40], N[Not[LessEqual[lambda2, 7.6e-25]], $MachinePrecision]], N[ArcTan[N[(N[Sin[(-lambda2)], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Cos[lambda2], $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[Sin[N[(N[(1.0 - N[(lambda2 / lambda1), $MachinePrecision]), $MachinePrecision] * lambda1), $MachinePrecision]], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $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}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;\lambda_2 \leq -2.5 \cdot 10^{+40} \lor \neg \left(\lambda_2 \leq 7.6 \cdot 10^{-25}\right):\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_2 \cdot \sin \phi_1\right) \cdot \cos \phi_2}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \left(\left(1 - \frac{\lambda_2}{\lambda_1}\right) \cdot \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if lambda2 < -2.50000000000000002e40 or 7.5999999999999996e-25 < lambda2

          1. Initial program 60.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. Add Preprocessing
          3. Taylor expanded in lambda1 around 0

            \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(-1 \cdot \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. Step-by-step derivation
            1. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\mathsf{neg}\left(\lambda_2\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. lower-neg.f6459.3

              \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites59.3%

            \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in lambda1 around 0

            \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \phi_2 \cdot \left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right)}} \]
          7. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}} \]
            2. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right) \cdot \cos \phi_2}} \]
            3. lower-*.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\left(\cos \left(\mathsf{neg}\left(\lambda_2\right)\right) \cdot \sin \phi_1\right)} \cdot \cos \phi_2} \]
            4. cos-negN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_2} \cdot \sin \phi_1\right) \cdot \cos \phi_2} \]
            5. lower-cos.f64N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(-\lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\color{blue}{\cos \lambda_2} \cdot \sin \phi_1\right) \cdot \cos \phi_2} \]
            6. lower-sin.f64N/A

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

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

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

          if -2.50000000000000002e40 < lambda2 < 7.5999999999999996e-25

          1. Initial program 97.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6480.8

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites80.8%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in lambda1 around inf

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\left(1 + \color{blue}{\left(\mathsf{neg}\left(\frac{\lambda_2}{\lambda_1}\right)\right)}\right) \cdot \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            4. unsub-negN/A

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

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

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

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

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

        Alternative 17: 79.7% accurate, 1.0× speedup?

        \[\begin{array}{l} \\ \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\mathsf{fma}\left(\left(-\sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_2, \sin \phi_2 \cdot \cos \phi_1\right)} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (atan2
          (* (cos phi2) (sin (- lambda1 lambda2)))
          (fma
           (* (- (sin phi1)) (cos (- lambda1 lambda2)))
           (cos phi2)
           (* (sin phi2) (cos phi1)))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	return atan2((cos(phi2) * sin((lambda1 - lambda2))), fma((-sin(phi1) * cos((lambda1 - lambda2))), cos(phi2), (sin(phi2) * cos(phi1))));
        }
        
        function code(lambda1, lambda2, phi1, phi2)
        	return atan(Float64(cos(phi2) * sin(Float64(lambda1 - lambda2))), fma(Float64(Float64(-sin(phi1)) * cos(Float64(lambda1 - lambda2))), cos(phi2), Float64(sin(phi2) * cos(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[Sin[phi1], $MachinePrecision]) * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision] + N[(N[Sin[phi2], $MachinePrecision] * N[Cos[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\mathsf{fma}\left(\left(-\sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right), \cos \phi_2, \sin \phi_2 \cdot \cos \phi_1\right)}
        \end{array}
        
        Derivation
        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. Add Preprocessing
        3. Step-by-step derivation
          1. lift-*.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\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. *-commutativeN/A

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\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. lift--.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\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. sub-negN/A

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

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\mathsf{neg}\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right) + \cos \phi_1 \cdot \sin \phi_2}} \]
          7. lift-*.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
          8. lift-*.f64N/A

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\left(\sin \phi_1 \cdot \cos \phi_2\right)} \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
          9. associate-*l*N/A

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\color{blue}{\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\right)\right) + \cos \phi_1 \cdot \sin \phi_2} \]
          10. distribute-lft-neg-inN/A

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
          11. *-commutativeN/A

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \color{blue}{\left(\cos \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2\right)} + \cos \phi_1 \cdot \sin \phi_2} \]
          12. associate-*r*N/A

            \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\color{blue}{\left(\left(\mathsf{neg}\left(\sin \phi_1\right)\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) \cdot \cos \phi_2} + \cos \phi_1 \cdot \sin \phi_2} \]
          13. lower-fma.f64N/A

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

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

        Alternative 18: 66.1% accurate, 1.1× speedup?

        \[\begin{array}{l} \\ \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\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))
          (- (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)), (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)), (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.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.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(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)), (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[Sin[phi2], $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}{\sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
        \end{array}
        
        Derivation
        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. Add Preprocessing
        3. Taylor expanded in phi1 around 0

          \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        4. Step-by-step derivation
          1. lower-sin.f6465.3

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        5. Applied rewrites65.3%

          \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        6. Add Preprocessing

        Alternative 19: 65.2% accurate, 1.3× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_2 \leq -0.0025 \lor \neg \left(\phi_2 \leq 1.6 \cdot 10^{-15}\right):\\ \;\;\;\;\tan^{-1}_* \frac{t\_0 \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (sin (- lambda1 lambda2))))
           (if (or (<= phi2 -0.0025) (not (<= phi2 1.6e-15)))
             (atan2 (* t_0 (cos phi2)) (- (sin phi2) (* (sin phi1) (cos lambda1))))
             (atan2
              (* (fma -0.5 (* phi2 phi2) 1.0) t_0)
              (- (sin phi2) (* (sin phi1) (cos (- lambda1 lambda2))))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = sin((lambda1 - lambda2));
        	double tmp;
        	if ((phi2 <= -0.0025) || !(phi2 <= 1.6e-15)) {
        		tmp = atan2((t_0 * cos(phi2)), (sin(phi2) - (sin(phi1) * cos(lambda1))));
        	} else {
        		tmp = atan2((fma(-0.5, (phi2 * phi2), 1.0) * t_0), (sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)))));
        	}
        	return tmp;
        }
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = sin(Float64(lambda1 - lambda2))
        	tmp = 0.0
        	if ((phi2 <= -0.0025) || !(phi2 <= 1.6e-15))
        		tmp = atan(Float64(t_0 * cos(phi2)), Float64(sin(phi2) - Float64(sin(phi1) * cos(lambda1))));
        	else
        		tmp = atan(Float64(fma(-0.5, Float64(phi2 * phi2), 1.0) * t_0), Float64(sin(phi2) - Float64(sin(phi1) * cos(Float64(lambda1 - lambda2)))));
        	end
        	return tmp
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]}, If[Or[LessEqual[phi2, -0.0025], N[Not[LessEqual[phi2, 1.6e-15]], $MachinePrecision]], N[ArcTan[N[(t$95$0 * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(-0.5 * N[(phi2 * phi2), $MachinePrecision] + 1.0), $MachinePrecision] * t$95$0), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \sin \left(\lambda_1 - \lambda_2\right)\\
        \mathbf{if}\;\phi_2 \leq -0.0025 \lor \neg \left(\phi_2 \leq 1.6 \cdot 10^{-15}\right):\\
        \;\;\;\;\tan^{-1}_* \frac{t\_0 \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if phi2 < -0.00250000000000000005 or 1.6e-15 < phi2

          1. Initial program 76.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6447.1

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites47.1%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

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

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

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

          if -0.00250000000000000005 < phi2 < 1.6e-15

          1. Initial program 82.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6481.6

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites81.6%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          10. Step-by-step derivation
            1. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            2. distribute-rgt1-inN/A

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            4. lower-fma.f64N/A

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. sub-negN/A

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

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

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

          \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \leq -0.0025 \lor \neg \left(\phi_2 \leq 1.6 \cdot 10^{-15}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \end{array} \]
        5. Add Preprocessing

        Alternative 20: 56.3% accurate, 1.3× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_2 \leq -1.75 \lor \neg \left(\phi_2 \leq 29.5\right):\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t\_0}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t\_0}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (- (sin phi2) (* (sin phi1) (cos (- lambda1 lambda2))))))
           (if (or (<= phi2 -1.75) (not (<= phi2 29.5)))
             (atan2 (* (sin lambda1) (cos phi2)) t_0)
             (atan2 (* (fma -0.5 (* phi2 phi2) 1.0) (sin (- lambda1 lambda2))) t_0))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)));
        	double tmp;
        	if ((phi2 <= -1.75) || !(phi2 <= 29.5)) {
        		tmp = atan2((sin(lambda1) * cos(phi2)), t_0);
        	} else {
        		tmp = atan2((fma(-0.5, (phi2 * phi2), 1.0) * sin((lambda1 - lambda2))), t_0);
        	}
        	return tmp;
        }
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = Float64(sin(phi2) - Float64(sin(phi1) * cos(Float64(lambda1 - lambda2))))
        	tmp = 0.0
        	if ((phi2 <= -1.75) || !(phi2 <= 29.5))
        		tmp = atan(Float64(sin(lambda1) * cos(phi2)), t_0);
        	else
        		tmp = atan(Float64(fma(-0.5, Float64(phi2 * phi2), 1.0) * sin(Float64(lambda1 - lambda2))), t_0);
        	end
        	return tmp
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[phi2, -1.75], N[Not[LessEqual[phi2, 29.5]], $MachinePrecision]], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / t$95$0], $MachinePrecision], N[ArcTan[N[(N[(-0.5 * N[(phi2 * phi2), $MachinePrecision] + 1.0), $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$0], $MachinePrecision]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)\\
        \mathbf{if}\;\phi_2 \leq -1.75 \lor \neg \left(\phi_2 \leq 29.5\right):\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t\_0}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t\_0}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if phi2 < -1.75 or 29.5 < phi2

          1. Initial program 76.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6446.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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites46.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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

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

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

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

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\left(\color{blue}{\left(\lambda_2 + \lambda_1\right)} \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot \frac{1}{\lambda_1 + \lambda_2}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. inv-powN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\left(\left(\lambda_2 + \lambda_1\right) \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot \color{blue}{{\left(\lambda_1 + \lambda_2\right)}^{-1}}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. lower-pow.f64N/A

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

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

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

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

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

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

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

          if -1.75 < phi2 < 29.5

          1. Initial program 81.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6481.1

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites81.1%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          10. Step-by-step derivation
            1. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            2. distribute-rgt1-inN/A

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            4. lower-fma.f64N/A

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. sub-negN/A

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

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

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

          \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \leq -1.75 \lor \neg \left(\phi_2 \leq 29.5\right):\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \end{array} \]
        5. Add Preprocessing

        Alternative 21: 64.3% accurate, 1.3× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2\\ \mathbf{if}\;\lambda_1 \leq -1.5 \cdot 10^{+82}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{elif}\;\lambda_1 \leq 0.094:\\ \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (* (sin (- lambda1 lambda2)) (cos phi2))))
           (if (<= lambda1 -1.5e+82)
             (atan2
              (* (sin lambda1) (cos phi2))
              (- (sin phi2) (* (sin phi1) (cos (- lambda1 lambda2)))))
             (if (<= lambda1 0.094)
               (atan2 t_0 (- (sin phi2) (* (sin phi1) (cos lambda2))))
               (atan2 t_0 (- (sin phi2) (* (sin phi1) (cos lambda1))))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = sin((lambda1 - lambda2)) * cos(phi2);
        	double tmp;
        	if (lambda1 <= -1.5e+82) {
        		tmp = atan2((sin(lambda1) * cos(phi2)), (sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)))));
        	} else if (lambda1 <= 0.094) {
        		tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(lambda2))));
        	} else {
        		tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(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 = sin((lambda1 - lambda2)) * cos(phi2)
            if (lambda1 <= (-1.5d+82)) then
                tmp = atan2((sin(lambda1) * cos(phi2)), (sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)))))
            else if (lambda1 <= 0.094d0) then
                tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(lambda2))))
            else
                tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(lambda1))))
            end if
            code = tmp
        end function
        
        public static double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = Math.sin((lambda1 - lambda2)) * Math.cos(phi2);
        	double tmp;
        	if (lambda1 <= -1.5e+82) {
        		tmp = Math.atan2((Math.sin(lambda1) * Math.cos(phi2)), (Math.sin(phi2) - (Math.sin(phi1) * Math.cos((lambda1 - lambda2)))));
        	} else if (lambda1 <= 0.094) {
        		tmp = Math.atan2(t_0, (Math.sin(phi2) - (Math.sin(phi1) * Math.cos(lambda2))));
        	} else {
        		tmp = Math.atan2(t_0, (Math.sin(phi2) - (Math.sin(phi1) * Math.cos(lambda1))));
        	}
        	return tmp;
        }
        
        def code(lambda1, lambda2, phi1, phi2):
        	t_0 = math.sin((lambda1 - lambda2)) * math.cos(phi2)
        	tmp = 0
        	if lambda1 <= -1.5e+82:
        		tmp = math.atan2((math.sin(lambda1) * math.cos(phi2)), (math.sin(phi2) - (math.sin(phi1) * math.cos((lambda1 - lambda2)))))
        	elif lambda1 <= 0.094:
        		tmp = math.atan2(t_0, (math.sin(phi2) - (math.sin(phi1) * math.cos(lambda2))))
        	else:
        		tmp = math.atan2(t_0, (math.sin(phi2) - (math.sin(phi1) * math.cos(lambda1))))
        	return tmp
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2))
        	tmp = 0.0
        	if (lambda1 <= -1.5e+82)
        		tmp = atan(Float64(sin(lambda1) * cos(phi2)), Float64(sin(phi2) - Float64(sin(phi1) * cos(Float64(lambda1 - lambda2)))));
        	elseif (lambda1 <= 0.094)
        		tmp = atan(t_0, Float64(sin(phi2) - Float64(sin(phi1) * cos(lambda2))));
        	else
        		tmp = atan(t_0, Float64(sin(phi2) - Float64(sin(phi1) * cos(lambda1))));
        	end
        	return tmp
        end
        
        function tmp_2 = code(lambda1, lambda2, phi1, phi2)
        	t_0 = sin((lambda1 - lambda2)) * cos(phi2);
        	tmp = 0.0;
        	if (lambda1 <= -1.5e+82)
        		tmp = atan2((sin(lambda1) * cos(phi2)), (sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)))));
        	elseif (lambda1 <= 0.094)
        		tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(lambda2))));
        	else
        		tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(lambda1))));
        	end
        	tmp_2 = tmp;
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[lambda1, -1.5e+82], N[ArcTan[N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[lambda1, 0.094], N[ArcTan[t$95$0 / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$0 / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2\\
        \mathbf{if}\;\lambda_1 \leq -1.5 \cdot 10^{+82}:\\
        \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\
        
        \mathbf{elif}\;\lambda_1 \leq 0.094:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_2}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if lambda1 < -1.49999999999999995e82

          1. Initial program 61.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6453.6

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites53.6%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

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

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

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

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\left(\color{blue}{\left(\lambda_2 + \lambda_1\right)} \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot \frac{1}{\lambda_1 + \lambda_2}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. inv-powN/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\left(\left(\lambda_2 + \lambda_1\right) \cdot \left(\lambda_1 - \lambda_2\right)\right) \cdot \color{blue}{{\left(\lambda_1 + \lambda_2\right)}^{-1}}\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. lower-pow.f64N/A

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

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

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

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

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

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

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

          if -1.49999999999999995e82 < lambda1 < 0.094

          1. Initial program 98.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6478.9

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites78.9%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \color{blue}{\cos \left(\mathsf{neg}\left(\lambda_2\right)\right)}} \]
          10. Step-by-step derivation
            1. cos-negN/A

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

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

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

          if 0.094 < lambda1

          1. Initial program 55.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6446.5

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites46.5%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

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

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

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

        Alternative 22: 65.4% accurate, 1.3× speedup?

        \[\begin{array}{l} \\ \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (atan2
          (* (sin (- lambda1 lambda2)) (cos phi2))
          (- (sin phi2) (* (sin phi1) (cos (- lambda1 lambda2))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	return atan2((sin((lambda1 - lambda2)) * cos(phi2)), (sin(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 - lambda2)) * cos(phi2)), (sin(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 - lambda2)) * Math.cos(phi2)), (Math.sin(phi2) - (Math.sin(phi1) * Math.cos((lambda1 - lambda2)))));
        }
        
        def code(lambda1, lambda2, phi1, phi2):
        	return math.atan2((math.sin((lambda1 - lambda2)) * math.cos(phi2)), (math.sin(phi2) - (math.sin(phi1) * math.cos((lambda1 - lambda2)))))
        
        function code(lambda1, lambda2, phi1, phi2)
        	return atan(Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2)), Float64(sin(phi2) - Float64(sin(phi1) * cos(Float64(lambda1 - lambda2)))))
        end
        
        function tmp = code(lambda1, lambda2, phi1, phi2)
        	tmp = atan2((sin((lambda1 - lambda2)) * cos(phi2)), (sin(phi2) - (sin(phi1) * 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[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $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}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}
        \end{array}
        
        Derivation
        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. Add Preprocessing
        3. Taylor expanded in phi1 around 0

          \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        4. Step-by-step derivation
          1. lower-sin.f6465.3

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        5. Applied rewrites65.3%

          \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        6. Taylor expanded in phi2 around 0

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

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

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

        Alternative 23: 46.6% accurate, 1.5× speedup?

        \[\begin{array}{l} \\ \tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \left(\mathsf{fma}\left(\phi_2 \cdot \phi_2, -0.5, 1\right) \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (atan2
          (* (fma -0.5 (* phi2 phi2) 1.0) (sin (- lambda1 lambda2)))
          (-
           (sin phi2)
           (* (* (fma (* phi2 phi2) -0.5 1.0) (sin phi1)) (cos (- lambda1 lambda2))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	return atan2((fma(-0.5, (phi2 * phi2), 1.0) * sin((lambda1 - lambda2))), (sin(phi2) - ((fma((phi2 * phi2), -0.5, 1.0) * sin(phi1)) * cos((lambda1 - lambda2)))));
        }
        
        function code(lambda1, lambda2, phi1, phi2)
        	return atan(Float64(fma(-0.5, Float64(phi2 * phi2), 1.0) * sin(Float64(lambda1 - lambda2))), Float64(sin(phi2) - Float64(Float64(fma(Float64(phi2 * phi2), -0.5, 1.0) * sin(phi1)) * cos(Float64(lambda1 - lambda2)))))
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(-0.5 * N[(phi2 * phi2), $MachinePrecision] + 1.0), $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[(N[(N[(phi2 * phi2), $MachinePrecision] * -0.5 + 1.0), $MachinePrecision] * N[Sin[phi1], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \left(\mathsf{fma}\left(\phi_2 \cdot \phi_2, -0.5, 1\right) \cdot \sin \phi_1\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
        \end{array}
        
        Derivation
        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. Add Preprocessing
        3. Taylor expanded in phi1 around 0

          \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        4. Step-by-step derivation
          1. lower-sin.f6465.3

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        5. Applied rewrites65.3%

          \[\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 \left(\lambda_1 - \lambda_2\right)} \]
        6. Taylor expanded in phi2 around 0

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

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

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

          \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
        10. Step-by-step derivation
          1. associate-*r*N/A

            \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          2. distribute-rgt1-inN/A

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          4. lower-fma.f64N/A

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

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

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          10. neg-mul-1N/A

            \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          11. sub-negN/A

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

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

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

          \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \color{blue}{\left(\sin \phi_1 + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \phi_1\right)\right)} \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
        13. Step-by-step derivation
          1. associate-*r*N/A

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

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

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

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

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

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

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

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

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

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

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

        Alternative 24: 45.0% accurate, 1.5× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\lambda_1 \leq -1.5 \cdot 10^{+82}:\\ \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\phi_2 \cdot \phi_2, -0.5, 1\right) \cdot \sin \lambda_1}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\ \mathbf{elif}\;\lambda_1 \leq 2800000:\\ \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_2}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}\\ \end{array} \end{array} \]
        (FPCore (lambda1 lambda2 phi1 phi2)
         :precision binary64
         (let* ((t_0 (* (fma -0.5 (* phi2 phi2) 1.0) (sin (- lambda1 lambda2)))))
           (if (<= lambda1 -1.5e+82)
             (atan2
              (* (fma (* phi2 phi2) -0.5 1.0) (sin lambda1))
              (- (sin phi2) (* (sin phi1) (cos (- lambda1 lambda2)))))
             (if (<= lambda1 2800000.0)
               (atan2 t_0 (- (sin phi2) (* (sin phi1) (cos lambda2))))
               (atan2 t_0 (- (sin phi2) (* (sin phi1) (cos lambda1))))))))
        double code(double lambda1, double lambda2, double phi1, double phi2) {
        	double t_0 = fma(-0.5, (phi2 * phi2), 1.0) * sin((lambda1 - lambda2));
        	double tmp;
        	if (lambda1 <= -1.5e+82) {
        		tmp = atan2((fma((phi2 * phi2), -0.5, 1.0) * sin(lambda1)), (sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)))));
        	} else if (lambda1 <= 2800000.0) {
        		tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(lambda2))));
        	} else {
        		tmp = atan2(t_0, (sin(phi2) - (sin(phi1) * cos(lambda1))));
        	}
        	return tmp;
        }
        
        function code(lambda1, lambda2, phi1, phi2)
        	t_0 = Float64(fma(-0.5, Float64(phi2 * phi2), 1.0) * sin(Float64(lambda1 - lambda2)))
        	tmp = 0.0
        	if (lambda1 <= -1.5e+82)
        		tmp = atan(Float64(fma(Float64(phi2 * phi2), -0.5, 1.0) * sin(lambda1)), Float64(sin(phi2) - Float64(sin(phi1) * cos(Float64(lambda1 - lambda2)))));
        	elseif (lambda1 <= 2800000.0)
        		tmp = atan(t_0, Float64(sin(phi2) - Float64(sin(phi1) * cos(lambda2))));
        	else
        		tmp = atan(t_0, Float64(sin(phi2) - Float64(sin(phi1) * cos(lambda1))));
        	end
        	return tmp
        end
        
        code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[(-0.5 * N[(phi2 * phi2), $MachinePrecision] + 1.0), $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[lambda1, -1.5e+82], N[ArcTan[N[(N[(N[(phi2 * phi2), $MachinePrecision] * -0.5 + 1.0), $MachinePrecision] * N[Sin[lambda1], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[lambda1, 2800000.0], N[ArcTan[t$95$0 / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[t$95$0 / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)\\
        \mathbf{if}\;\lambda_1 \leq -1.5 \cdot 10^{+82}:\\
        \;\;\;\;\tan^{-1}_* \frac{\mathsf{fma}\left(\phi_2 \cdot \phi_2, -0.5, 1\right) \cdot \sin \lambda_1}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\\
        
        \mathbf{elif}\;\lambda_1 \leq 2800000:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_2}\\
        
        \mathbf{else}:\\
        \;\;\;\;\tan^{-1}_* \frac{t\_0}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if lambda1 < -1.49999999999999995e82

          1. Initial program 61.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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6453.6

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites53.6%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          10. Step-by-step derivation
            1. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            2. distribute-rgt1-inN/A

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            4. lower-fma.f64N/A

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. sub-negN/A

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

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

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

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

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

            if -1.49999999999999995e82 < lambda1 < 2.8e6

            1. Initial program 97.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. Add Preprocessing
            3. Taylor expanded in phi1 around 0

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
            4. Step-by-step derivation
              1. lower-sin.f6478.1

                \[\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 \left(\lambda_1 - \lambda_2\right)} \]
            5. Applied rewrites78.1%

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
            6. Taylor expanded in phi2 around 0

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. Step-by-step derivation
              1. associate-*r*N/A

                \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              2. distribute-rgt1-inN/A

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

                \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              4. lower-fma.f64N/A

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

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

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

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

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

                \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              10. neg-mul-1N/A

                \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              11. sub-negN/A

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \color{blue}{\cos \left(\mathsf{neg}\left(\lambda_2\right)\right)}} \]
            13. Step-by-step derivation
              1. cos-negN/A

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

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

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

            if 2.8e6 < lambda1

            1. Initial program 55.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. Add Preprocessing
            3. Taylor expanded in phi1 around 0

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
            4. Step-by-step derivation
              1. lower-sin.f6446.7

                \[\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 \left(\lambda_1 - \lambda_2\right)} \]
            5. Applied rewrites46.7%

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
            6. Taylor expanded in phi2 around 0

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. Step-by-step derivation
              1. associate-*r*N/A

                \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              2. distribute-rgt1-inN/A

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

                \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              4. lower-fma.f64N/A

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

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

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

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

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

                \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              10. neg-mul-1N/A

                \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
              11. sub-negN/A

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \color{blue}{\cos \lambda_1}} \]
          14. Recombined 3 regimes into one program.
          15. Add Preprocessing

          Alternative 25: 46.1% accurate, 1.6× speedup?

          \[\begin{array}{l} \\ \tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \end{array} \]
          (FPCore (lambda1 lambda2 phi1 phi2)
           :precision binary64
           (atan2
            (* (fma -0.5 (* phi2 phi2) 1.0) (sin (- lambda1 lambda2)))
            (- (sin phi2) (* (sin phi1) (cos (- lambda1 lambda2))))))
          double code(double lambda1, double lambda2, double phi1, double phi2) {
          	return atan2((fma(-0.5, (phi2 * phi2), 1.0) * sin((lambda1 - lambda2))), (sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)))));
          }
          
          function code(lambda1, lambda2, phi1, phi2)
          	return atan(Float64(fma(-0.5, Float64(phi2 * phi2), 1.0) * sin(Float64(lambda1 - lambda2))), Float64(sin(phi2) - Float64(sin(phi1) * cos(Float64(lambda1 - lambda2)))))
          end
          
          code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(-0.5 * N[(phi2 * phi2), $MachinePrecision] + 1.0), $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
          
          \begin{array}{l}
          
          \\
          \tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}
          \end{array}
          
          Derivation
          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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6465.3

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites65.3%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          10. Step-by-step derivation
            1. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            2. distribute-rgt1-inN/A

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            4. lower-fma.f64N/A

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. sub-negN/A

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

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

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

          Alternative 26: 41.5% accurate, 1.6× speedup?

          \[\begin{array}{l} \\ \tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1} \end{array} \]
          (FPCore (lambda1 lambda2 phi1 phi2)
           :precision binary64
           (atan2
            (* (fma -0.5 (* phi2 phi2) 1.0) (sin (- lambda1 lambda2)))
            (- (sin phi2) (* (sin phi1) (cos lambda1)))))
          double code(double lambda1, double lambda2, double phi1, double phi2) {
          	return atan2((fma(-0.5, (phi2 * phi2), 1.0) * sin((lambda1 - lambda2))), (sin(phi2) - (sin(phi1) * cos(lambda1))));
          }
          
          function code(lambda1, lambda2, phi1, phi2)
          	return atan(Float64(fma(-0.5, Float64(phi2 * phi2), 1.0) * sin(Float64(lambda1 - lambda2))), Float64(sin(phi2) - Float64(sin(phi1) * cos(lambda1))))
          end
          
          code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(-0.5 * N[(phi2 * phi2), $MachinePrecision] + 1.0), $MachinePrecision] * N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
          
          \begin{array}{l}
          
          \\
          \tan^{-1}_* \frac{\mathsf{fma}\left(-0.5, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \lambda_1}
          \end{array}
          
          Derivation
          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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6465.3

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites65.3%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          10. Step-by-step derivation
            1. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            2. distribute-rgt1-inN/A

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            4. lower-fma.f64N/A

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. sub-negN/A

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

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

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

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

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

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

          Alternative 27: 30.9% accurate, 1.6× speedup?

          \[\begin{array}{l} \\ \tan^{-1}_* \frac{\mathsf{fma}\left(\phi_2 \cdot \phi_2, -0.5, 1\right) \cdot \sin \lambda_1}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \end{array} \]
          (FPCore (lambda1 lambda2 phi1 phi2)
           :precision binary64
           (atan2
            (* (fma (* phi2 phi2) -0.5 1.0) (sin lambda1))
            (- (sin phi2) (* (sin phi1) (cos (- lambda1 lambda2))))))
          double code(double lambda1, double lambda2, double phi1, double phi2) {
          	return atan2((fma((phi2 * phi2), -0.5, 1.0) * sin(lambda1)), (sin(phi2) - (sin(phi1) * cos((lambda1 - lambda2)))));
          }
          
          function code(lambda1, lambda2, phi1, phi2)
          	return atan(Float64(fma(Float64(phi2 * phi2), -0.5, 1.0) * sin(lambda1)), Float64(sin(phi2) - Float64(sin(phi1) * cos(Float64(lambda1 - lambda2)))))
          end
          
          code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[(N[(phi2 * phi2), $MachinePrecision] * -0.5 + 1.0), $MachinePrecision] * N[Sin[lambda1], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[phi2], $MachinePrecision] - N[(N[Sin[phi1], $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
          
          \begin{array}{l}
          
          \\
          \tan^{-1}_* \frac{\mathsf{fma}\left(\phi_2 \cdot \phi_2, -0.5, 1\right) \cdot \sin \lambda_1}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)}
          \end{array}
          
          Derivation
          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. Add Preprocessing
          3. Taylor expanded in phi1 around 0

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          4. Step-by-step derivation
            1. lower-sin.f6465.3

              \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          5. Applied rewrites65.3%

            \[\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 \left(\lambda_1 - \lambda_2\right)} \]
          6. Taylor expanded in phi2 around 0

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

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

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

            \[\leadsto \tan^{-1}_* \frac{\color{blue}{\sin \left(\lambda_1 - \lambda_2\right) + \frac{-1}{2} \cdot \left({\phi_2}^{2} \cdot \sin \left(\lambda_1 - \lambda_2\right)\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
          10. Step-by-step derivation
            1. associate-*r*N/A

              \[\leadsto \tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) + \color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2}\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            2. distribute-rgt1-inN/A

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

              \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\frac{-1}{2} \cdot {\phi_2}^{2} + 1\right) \cdot \sin \left(\lambda_1 - \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            4. lower-fma.f64N/A

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

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

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

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

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

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \color{blue}{\sin \left(\lambda_1 + -1 \cdot \lambda_2\right)}}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            10. neg-mul-1N/A

              \[\leadsto \tan^{-1}_* \frac{\mathsf{fma}\left(\frac{-1}{2}, \phi_2 \cdot \phi_2, 1\right) \cdot \sin \left(\lambda_1 + \color{blue}{\left(\mathsf{neg}\left(\lambda_2\right)\right)}\right)}{\sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
            11. sub-negN/A

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

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

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

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

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

            Reproduce

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