Average Error: 13.1 → 0.2
Time: 47.8s
Precision: binary64
Cost: 162752
\[\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)} \]
\[\begin{array}{l} t_0 := \sin \lambda_1 \cdot \sin \lambda_2\\ t_1 := \cos \lambda_2 \cdot \cos \lambda_1\\ \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \frac{{t_0}^{3} + {t_1}^{3}}{\frac{{t_1}^{2} + \sin \lambda_2 \cdot \left(\sin \lambda_1 \cdot \left(t_0 - t_1\right)\right)}{\sin \phi_1}}} \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))))))
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (let* ((t_0 (* (sin lambda1) (sin lambda2)))
        (t_1 (* (cos lambda2) (cos lambda1))))
   (atan2
    (*
     (- (* (sin lambda1) (cos lambda2)) (* (cos lambda1) (sin lambda2)))
     (cos phi2))
    (-
     (* (cos phi1) (sin phi2))
     (*
      (cos phi2)
      (/
       (+ (pow t_0 3.0) (pow t_1 3.0))
       (/
        (+ (pow t_1 2.0) (* (sin lambda2) (* (sin lambda1) (- t_0 t_1))))
        (sin phi1))))))))
double code(double lambda1, double lambda2, double phi1, double phi2) {
	return atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))));
}
double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = sin(lambda1) * sin(lambda2);
	double t_1 = cos(lambda2) * cos(lambda1);
	return atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (cos(phi2) * ((pow(t_0, 3.0) + pow(t_1, 3.0)) / ((pow(t_1, 2.0) + (sin(lambda2) * (sin(lambda1) * (t_0 - t_1)))) / sin(phi1))))));
}
real(8) function code(lambda1, lambda2, phi1, phi2)
    real(8), intent (in) :: lambda1
    real(8), intent (in) :: lambda2
    real(8), intent (in) :: phi1
    real(8), intent (in) :: phi2
    code = atan2((sin((lambda1 - lambda2)) * cos(phi2)), ((cos(phi1) * sin(phi2)) - ((sin(phi1) * cos(phi2)) * cos((lambda1 - lambda2)))))
end function
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
    t_0 = sin(lambda1) * sin(lambda2)
    t_1 = cos(lambda2) * cos(lambda1)
    code = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (((t_0 ** 3.0d0) + (t_1 ** 3.0d0)) / (((t_1 ** 2.0d0) + (sin(lambda2) * (sin(lambda1) * (t_0 - t_1)))) / sin(phi1))))))
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)))));
}
public static double code(double lambda1, double lambda2, double phi1, double phi2) {
	double t_0 = Math.sin(lambda1) * Math.sin(lambda2);
	double t_1 = Math.cos(lambda2) * Math.cos(lambda1);
	return Math.atan2((((Math.sin(lambda1) * Math.cos(lambda2)) - (Math.cos(lambda1) * Math.sin(lambda2))) * Math.cos(phi2)), ((Math.cos(phi1) * Math.sin(phi2)) - (Math.cos(phi2) * ((Math.pow(t_0, 3.0) + Math.pow(t_1, 3.0)) / ((Math.pow(t_1, 2.0) + (Math.sin(lambda2) * (Math.sin(lambda1) * (t_0 - t_1)))) / Math.sin(phi1))))));
}
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)))))
def code(lambda1, lambda2, phi1, phi2):
	t_0 = math.sin(lambda1) * math.sin(lambda2)
	t_1 = math.cos(lambda2) * math.cos(lambda1)
	return math.atan2((((math.sin(lambda1) * math.cos(lambda2)) - (math.cos(lambda1) * math.sin(lambda2))) * math.cos(phi2)), ((math.cos(phi1) * math.sin(phi2)) - (math.cos(phi2) * ((math.pow(t_0, 3.0) + math.pow(t_1, 3.0)) / ((math.pow(t_1, 2.0) + (math.sin(lambda2) * (math.sin(lambda1) * (t_0 - t_1)))) / math.sin(phi1))))))
function code(lambda1, lambda2, phi1, phi2)
	return atan(Float64(sin(Float64(lambda1 - lambda2)) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(Float64(sin(phi1) * cos(phi2)) * cos(Float64(lambda1 - lambda2)))))
end
function code(lambda1, lambda2, phi1, phi2)
	t_0 = Float64(sin(lambda1) * sin(lambda2))
	t_1 = Float64(cos(lambda2) * cos(lambda1))
	return atan(Float64(Float64(Float64(sin(lambda1) * cos(lambda2)) - Float64(cos(lambda1) * sin(lambda2))) * cos(phi2)), Float64(Float64(cos(phi1) * sin(phi2)) - Float64(cos(phi2) * Float64(Float64((t_0 ^ 3.0) + (t_1 ^ 3.0)) / Float64(Float64((t_1 ^ 2.0) + Float64(sin(lambda2) * Float64(sin(lambda1) * Float64(t_0 - t_1)))) / sin(phi1))))))
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
function tmp = code(lambda1, lambda2, phi1, phi2)
	t_0 = sin(lambda1) * sin(lambda2);
	t_1 = cos(lambda2) * cos(lambda1);
	tmp = atan2((((sin(lambda1) * cos(lambda2)) - (cos(lambda1) * sin(lambda2))) * cos(phi2)), ((cos(phi1) * sin(phi2)) - (cos(phi2) * (((t_0 ^ 3.0) + (t_1 ^ 3.0)) / (((t_1 ^ 2.0) + (sin(lambda2) * (sin(lambda1) * (t_0 - t_1)))) / sin(phi1))))));
end
code[lambda1_, lambda2_, phi1_, phi2_] := N[ArcTan[N[(N[Sin[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[(N[Sin[phi1], $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(lambda1 - lambda2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
code[lambda1_, lambda2_, phi1_, phi2_] := Block[{t$95$0 = N[(N[Sin[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Cos[lambda2], $MachinePrecision] * N[Cos[lambda1], $MachinePrecision]), $MachinePrecision]}, N[ArcTan[N[(N[(N[(N[Sin[lambda1], $MachinePrecision] * N[Cos[lambda2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[lambda1], $MachinePrecision] * N[Sin[lambda2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[phi2], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Cos[phi1], $MachinePrecision] * N[Sin[phi2], $MachinePrecision]), $MachinePrecision] - N[(N[Cos[phi2], $MachinePrecision] * N[(N[(N[Power[t$95$0, 3.0], $MachinePrecision] + N[Power[t$95$1, 3.0], $MachinePrecision]), $MachinePrecision] / N[(N[(N[Power[t$95$1, 2.0], $MachinePrecision] + N[(N[Sin[lambda2], $MachinePrecision] * N[(N[Sin[lambda1], $MachinePrecision] * N[(t$95$0 - t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Sin[phi1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\begin{array}{l}
t_0 := \sin \lambda_1 \cdot \sin \lambda_2\\
t_1 := \cos \lambda_2 \cdot \cos \lambda_1\\
\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \frac{{t_0}^{3} + {t_1}^{3}}{\frac{{t_1}^{2} + \sin \lambda_2 \cdot \left(\sin \lambda_1 \cdot \left(t_0 - t_1\right)\right)}{\sin \phi_1}}}
\end{array}

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 13.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. Simplified13.1

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

    [Start]13.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)} \]

    associate-*l* [=>]13.1

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

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

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

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

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

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

    [Start]0.2

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

    *-lft-identity [<=]0.2

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

    associate-/l* [<=]0.2

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

    *-commutative [<=]0.2

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

    associate-/l* [=>]0.2

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

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

Alternatives

Alternative 1
Error3.7
Cost91144
\[\begin{array}{l} t_0 := \cos \lambda_1 \cdot \sin \lambda_2\\ t_1 := \cos \phi_1 \cdot \sin \phi_2\\ t_2 := t_1 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\\ t_3 := \sin \lambda_1 \cdot \cos \lambda_2\\ t_4 := \left(t_3 - t_0\right) \cdot \cos \phi_2\\ \mathbf{if}\;\phi_2 \leq -180000:\\ \;\;\;\;\tan^{-1}_* \frac{t_3 \cdot \cos \phi_2 - t_0 \cdot \cos \phi_2}{t_2}\\ \mathbf{elif}\;\phi_2 \leq 145000000000:\\ \;\;\;\;\tan^{-1}_* \frac{t_4}{t_1 - \sin \phi_1 \cdot \mathsf{fma}\left(\sin \lambda_2, \sin \lambda_1, \cos \lambda_2 \cdot \cos \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_4}{t_2}\\ \end{array} \]
Alternative 2
Error0.2
Cost91136
\[\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \cos \phi_2 \cdot \left(\sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)} \]
Alternative 3
Error3.7
Cost84872
\[\begin{array}{l} t_0 := \cos \lambda_1 \cdot \sin \lambda_2\\ t_1 := \cos \phi_1 \cdot \sin \phi_2\\ t_2 := t_1 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)\\ t_3 := \sin \lambda_1 \cdot \cos \lambda_2\\ t_4 := \left(t_3 - t_0\right) \cdot \cos \phi_2\\ \mathbf{if}\;\phi_2 \leq -180000:\\ \;\;\;\;\tan^{-1}_* \frac{t_3 \cdot \cos \phi_2 - t_0 \cdot \cos \phi_2}{t_2}\\ \mathbf{elif}\;\phi_2 \leq 145000000000:\\ \;\;\;\;\tan^{-1}_* \frac{t_4}{t_1 - \sin \phi_1 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_4}{t_2}\\ \end{array} \]
Alternative 4
Error7.5
Cost71945
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_2 \leq -2.3 \cdot 10^{+19} \lor \neg \left(\lambda_2 \leq 4.9 \cdot 10^{-59}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}\\ \end{array} \]
Alternative 5
Error6.9
Cost71817
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \sin \lambda_1 \cdot \cos \lambda_2\\ \mathbf{if}\;\lambda_1 \leq -2.5 \cdot 10^{+14} \lor \neg \left(\lambda_1 \leq 6.6 \cdot 10^{-10}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\left(t_1 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(t_1 - \sin \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\\ \end{array} \]
Alternative 6
Error6.8
Cost71817
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_2 \leq -1.2 \cdot 10^{-5} \lor \neg \left(\lambda_2 \leq 0.39\right):\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\sin \left(\lambda_1 - \lambda_2\right)\right)\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\\ \end{array} \]
Alternative 7
Error6.7
Cost71680
\[\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)} \]
Alternative 8
Error8.4
Cost65416
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \left(\lambda_1 - \lambda_2\right)\\ t_2 := \sin \lambda_1 \cdot \cos \lambda_2\\ \mathbf{if}\;\phi_1 \leq -1800000:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(t_2 - \sin \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot t_1\right)}\\ \mathbf{elif}\;\phi_1 \leq 2.9 \cdot 10^{+57}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(t_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_1\right)\right)\right)}\\ \end{array} \]
Alternative 9
Error8.4
Cost65288
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \left(\lambda_1 - \lambda_2\right)\\ t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_1 \leq -1.45 \cdot 10^{-8}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot t_1\right)}\\ \mathbf{elif}\;\phi_1 \leq 3.4 \cdot 10^{+25}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_1\right)\right)\right)}\\ \end{array} \]
Alternative 10
Error8.3
Cost65288
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \cos \left(\lambda_1 - \lambda_2\right)\\ t_2 := \sin \lambda_1 \cdot \cos \lambda_2\\ \mathbf{if}\;\phi_1 \leq -1.2 \cdot 10^{-12}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(t_2 - \sin \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot t_1\right)}\\ \mathbf{elif}\;\phi_1 \leq 3.4 \cdot 10^{+25}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(t_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_1\right)\right)\right)}\\ \end{array} \]
Alternative 11
Error19.0
Cost52560
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\ t_2 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ t_3 := \cos \lambda_1 \cdot \sin \phi_1\\ \mathbf{if}\;\lambda_2 \leq -3 \cdot 10^{+19}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;\lambda_2 \leq 1.5 \cdot 10^{-301}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{elif}\;\lambda_2 \leq 9.6 \cdot 10^{-226}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \cos \phi_2 \cdot t_3}\\ \mathbf{elif}\;\lambda_2 \leq 2.7 \cdot 10^{-31}:\\ \;\;\;\;\tan^{-1}_* \frac{t_2}{t_0 - t_3}\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 12
Error8.4
Cost52489
\[\begin{array}{l} \mathbf{if}\;\phi_1 \leq -1.85 \cdot 10^{-9} \lor \neg \left(\phi_1 \leq 3.4 \cdot 10^{+25}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \]
Alternative 13
Error14.2
Cost52424
\[\begin{array}{l} t_0 := \cos \phi_2 \cdot \sin \left(-\lambda_2\right)\\ t_1 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_2 \leq -8200000000000:\\ \;\;\;\;\tan^{-1}_* \frac{t_0}{t_1 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\ \mathbf{elif}\;\lambda_2 \leq 2.7 \cdot 10^{-31}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_1 - \sin \phi_1 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_0}{t_1 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\\ \end{array} \]
Alternative 14
Error14.2
Cost52361
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_2 \leq -8200000000000 \lor \neg \left(\lambda_2 \leq 2.7 \cdot 10^{-31}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)}\\ \end{array} \]
Alternative 15
Error21.4
Cost52233
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_2 \leq 1.5 \cdot 10^{-301} \lor \neg \left(\lambda_2 \leq 9.2 \cdot 10^{-225}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_0 - \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \sin \phi_1\right)}\\ \end{array} \]
Alternative 16
Error13.1
Cost52224
\[\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)} \]
Alternative 17
Error22.8
Cost45897
\[\begin{array}{l} \mathbf{if}\;\lambda_2 \leq -13000000000000 \lor \neg \left(\lambda_2 \leq 2.7 \cdot 10^{-31}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{\sin \phi_2 - \sin \phi_1 \cdot \left(\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_1 \cdot \sin \phi_1}\\ \end{array} \]
Alternative 18
Error22.7
Cost45897
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_2 \leq -9000000000000 \lor \neg \left(\lambda_2 \leq 2.7 \cdot 10^{-31}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(-\lambda_2\right)}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{t_0 - \cos \lambda_1 \cdot \sin \phi_1}\\ \end{array} \]
Alternative 19
Error23.4
Cost45833
\[\begin{array}{l} t_0 := \cos \left(\lambda_2 - \lambda_1\right)\\ t_1 := \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_1 \leq -6.2 \cdot 10^{-7} \lor \neg \left(\phi_1 \leq 3.4 \cdot 10^{+25}\right):\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot t_0}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(t_1\right)\right)}{\sin \phi_2 - \phi_1 \cdot t_0}\\ \end{array} \]
Alternative 20
Error23.4
Cost45833
\[\begin{array}{l} t_0 := \cos \left(\lambda_2 - \lambda_1\right)\\ t_1 := \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_1 \leq -6.2 \cdot 10^{-7} \lor \neg \left(\phi_1 \leq 3.4 \cdot 10^{+25}\right):\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot t_0}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_1\right)\right)}{\sin \phi_2 - \phi_1 \cdot t_0}\\ \end{array} \]
Alternative 21
Error22.1
Cost45833
\[\begin{array}{l} t_0 := \cos \phi_1 \cdot \sin \phi_2\\ t_1 := \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_2 \leq -0.023 \lor \neg \left(\phi_2 \leq 1.1 \cdot 10^{-19}\right):\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot t_1}{t_0 - \cos \lambda_1 \cdot \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_1}{t_0 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \end{array} \]
Alternative 22
Error22.0
Cost45832
\[\begin{array}{l} t_0 := \cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)\\ t_1 := \cos \phi_1 \cdot \sin \phi_2\\ \mathbf{if}\;\lambda_1 \leq -0.65:\\ \;\;\;\;\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{t_1 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{elif}\;\lambda_1 \leq 6.6 \cdot 10^{-10}:\\ \;\;\;\;\tan^{-1}_* \frac{t_0}{t_1 - \cos \lambda_2 \cdot \sin \phi_1}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{t_0}{t_1 - \cos \lambda_1 \cdot \sin \phi_1}\\ \end{array} \]
Alternative 23
Error21.8
Cost45696
\[\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
Alternative 24
Error23.4
Cost39433
\[\begin{array}{l} t_0 := \sin \left(\lambda_1 - \lambda_2\right)\\ \mathbf{if}\;\phi_1 \leq -4.5 \cdot 10^{-7} \lor \neg \left(\phi_1 \leq 3.4 \cdot 10^{+25}\right):\\ \;\;\;\;\tan^{-1}_* \frac{t_0}{\cos \phi_1 \cdot \sin \phi_2 - \sin \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)}\\ \mathbf{else}:\\ \;\;\;\;\tan^{-1}_* \frac{\cos \phi_2 \cdot t_0}{\sin \phi_2 - \cos \lambda_2 \cdot \phi_1}\\ \end{array} \]
Alternative 25
Error43.9
Cost32640
\[\tan^{-1}_* \frac{\sin \lambda_1 \cdot \cos \phi_2}{\sin \phi_2 - \phi_1 \cdot \cos \left(\lambda_2 - \lambda_1\right)} \]
Alternative 26
Error33.0
Cost32640
\[\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\sin \phi_2 - \cos \lambda_1 \cdot \phi_1} \]

Error

Reproduce

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