?

Average Accuracy: 79.7% → 99.7%
Time: 1.5min
Precision: binary64
Cost: 97408

?

\[\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]
\[\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), \mathsf{fma.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right)\right)\right) \]
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2.f64
  (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
  (-.f64
   (*.f64 (cos.f64 phi1) (sin.f64 phi2))
   (*.f64
    (*.f64 (sin.f64 phi1) (cos.f64 phi2))
    (cos.f64 (-.f64 lambda1 lambda2))))))
(FPCore (lambda1 lambda2 phi1 phi2)
 :precision binary64
 (atan2.f64
  (*.f64
   (-.f64
    (*.f64 (sin.f64 lambda1) (cos.f64 lambda2))
    (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))
   (cos.f64 phi2))
  (-.f64
   (*.f64 (cos.f64 phi1) (sin.f64 phi2))
   (*.f64
    (*.f64 (cos.f64 phi2) (sin.f64 phi1))
    (fma.f64
     (cos.f64 lambda2)
     (cos.f64 lambda1)
     (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))
\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)
\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), \mathsf{fma.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right)\right)\right)

Error?

Derivation?

  1. Initial program 79.7%

    \[\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]
  2. Applied egg-rr89.9%

    \[\leadsto \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\color{blue}{\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right)}, \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]
    Proof

    [Start]79.7

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]

    sin-diff [=>]89.9

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\color{blue}{\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)}, \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]

    sub-neg [=>]89.9

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\color{blue}{\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right)}, \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]
  3. Simplified89.9%

    \[\leadsto \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\color{blue}{\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)}, \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]
    Proof

    [Start]89.9

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]

    sub-neg [<=]89.9

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\color{blue}{\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)}, \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]
  4. Applied egg-rr99.7%

    \[\leadsto \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \color{blue}{\mathsf{fma.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)}\right)\right)\right) \]
    Proof

    [Start]89.9

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]

    cos-diff [=>]99.7

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \color{blue}{\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)}\right)\right)\right) \]

    *-commutative [=>]99.7

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{+.f64}\left(\color{blue}{\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right)\right)}, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right)\right)\right) \]

    fma-def [=>]99.7

    \[ \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \color{blue}{\mathsf{fma.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)}\right)\right)\right) \]
  5. Final simplification99.7%

    \[\leadsto \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), \mathsf{fma.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right)\right)\right) \]

Alternatives

Alternative 1
Accuracy94.1%
Cost110729
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(t_1, \frac{-1152921504606847}{288230376151711744}\right) \lor \neg \mathsf{<=.f64}\left(t_1, \frac{5764607523034235}{288230376151711744}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(t_1, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(t_1, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right)\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 2
Accuracy93.5%
Cost104073
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \frac{-3602879701896397}{72057594037927936}\right) \lor \neg \mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \frac{2486616182048933}{497323236409786642155382248146820840100456150797347717440463976893159497012533375533056}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(t_1, \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\phi_2, \mathsf{cos.f64}\left(\phi_1\right)\right), \mathsf{*.f64}\left(t_1, \mathsf{fma.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 3
Accuracy88.3%
Cost98056
\[\begin{array}{l} t_0 := \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_2 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_3 := \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), t_2\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(t_3, \frac{-7378697629483821}{147573952589676412928}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{log1p.f64}\left(\mathsf{expm1.f64}\left(t_0\right)\right)\right), \mathsf{\_.f64}\left(t_1, t_3\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(t_3, \frac{7378697629483821}{147573952589676412928}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), t_0\right), \mathsf{\_.f64}\left(t_1, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), t_2\right)\right)\right)\right)\\ \end{array} \]
Alternative 4
Accuracy99.7%
Cost91136
\[\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{cos.f64}\left(\lambda_1\right)\right)\right)\right)\right)\right) \]
Alternative 5
Accuracy89.6%
Cost71817
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\\ t_2 := \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_1, \frac{-1098878309078401}{18014398509481984}\right) \lor \neg \mathsf{<=.f64}\left(\lambda_1, \frac{5444517870735015}{1361129467683753853853498429727072845824}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(t_2, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), t_1\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{\_.f64}\left(t_2, \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(t_1, \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 6
Accuracy89.8%
Cost71817
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right)\\ t_2 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_2, \frac{-8500259669165361}{2361183241434822606848}\right) \lor \neg \mathsf{<=.f64}\left(\lambda_2, \frac{7349874591868649}{288230376151711744}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), t_2\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), t_2\right)\right)\right)\\ \end{array} \]
Alternative 7
Accuracy89.9%
Cost71680
\[\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right) \]
Alternative 8
Accuracy85.8%
Cost65289
\[\begin{array}{l} \mathbf{if}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{-2734063405978765}{546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763456}\right) \lor \neg \mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{8343699359066055}{16687398718132110018711107079449625895333629080911349765211262561111091607661254297054391304192}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \end{array} \]
Alternative 9
Accuracy85.8%
Cost65288
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_2 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{-2734063405978765}{546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763456}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_2, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), t_1\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{8343699359066055}{16687398718132110018711107079449625895333629080911349765211262561111091607661254297054391304192}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_2, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), t_1\right)\right)\right)\right)\\ \end{array} \]
Alternative 10
Accuracy88.1%
Cost65288
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_2 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\phi_1, -7100\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_2, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), t_1\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\phi_1, \frac{870426590122533}{38685626227668133590597632}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_2, \mathsf{\_.f64}\left(t_0, \mathsf{log1p.f64}\left(\mathsf{expm1.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), t_1\right)\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 11
Accuracy88.2%
Cost65288
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\\ t_2 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_3 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\phi_1, -7100\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_3, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(t_1, t_2\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\phi_1, \frac{6422418416702717}{75557863725914323419136}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_3, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(t_1, \mathsf{log.f64}\left(\mathsf{exp.f64}\left(t_2\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 12
Accuracy88.6%
Cost65288
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\\ t_2 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_3 := \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\phi_1, \frac{-734987459186865}{144115188075855872}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{\_.f64}\left(t_3, \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(t_1, t_2\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\phi_1, \frac{1431368170423721}{38685626227668133590597632}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(t_3, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right), \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(t_1, \mathsf{log.f64}\left(\mathsf{exp.f64}\left(t_2\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 13
Accuracy88.2%
Cost58888
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_2 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\phi_1, -7100\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_2, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right), t_1\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\phi_1, \frac{6769984589841923}{1208925819614629174706176}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_2, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), t_1\right)\right)\right)\right)\\ \end{array} \]
Alternative 14
Accuracy72.5%
Cost52364
\[\begin{array}{l} t_0 := \mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ t_2 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_2, -1400000000000000\right):\\ \;\;\;\;t_0\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\lambda_2, \frac{-2567345589005133}{109248748468303532426524291739177087748419720352823839299932287987941986104404083859807145179079545499532163655162810211465442126301091677476673225561388319475223061782757614525859074636379160981159362824370366086868021215846014341794428966928384}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(t_2, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\lambda_2, \frac{6167591647773595}{6703903964971298549787012499102923063739682910296196688861780721860882015036773488400937149083451713845015929093243025426876941405973284973216824503042048}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(t_2, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\lambda_2, \frac{6965490562232727}{2361183241434822606848}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 15
Accuracy79.5%
Cost52361
\[\begin{array}{l} \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_2, -1350000000000000\right) \lor \neg \mathsf{<=.f64}\left(\lambda_2, \frac{6965490562232727}{2361183241434822606848}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 16
Accuracy78.8%
Cost52360
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ t_2 := \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_1, \frac{-1098878309078401}{18014398509481984}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, t_2\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\lambda_1, \frac{5444517870735015}{1361129467683753853853498429727072845824}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), t_2\right)\\ \end{array} \]
Alternative 17
Accuracy65.1%
Cost52104
\[\begin{array}{l} t_0 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{-7926335344172073}{36028797018963968}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(\phi_2, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), t_0\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{5404319552844595}{36028797018963968}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_2\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{neg.f64}\left(t_0\right)\right)\right)\\ \end{array} \]
Alternative 18
Accuracy72.4%
Cost45961
\[\begin{array}{l} \mathbf{if}\;\mathsf{<=.f64}\left(\phi_1, -149999999999999995295049161876963328\right) \lor \neg \mathsf{<=.f64}\left(\phi_1, \frac{6070840288205403}{1897137590064188545819787018382342682267975428761855001222473056385648716020711424}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \end{array} \]
Alternative 19
Accuracy64.8%
Cost45832
\[\begin{array}{l} t_0 := \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{-3314649325744685}{72057594037927936}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(\phi_2, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), t_0\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \frac{1915619426082361}{383123885216472214589586756787577295904684780545900544}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\phi_1, \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_1, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{neg.f64}\left(t_0\right)\right)\right)\\ \end{array} \]
Alternative 20
Accuracy64.4%
Cost45769
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \frac{-4835703278458517}{2417851639229258349412352}\right) \lor \neg \mathsf{<=.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \frac{944473296573929}{18889465931478580854784}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{neg.f64}\left(\mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 21
Accuracy65.1%
Cost45704
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ t_1 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_1, \frac{5444517870735015}{1361129467683753853853498429727072845824}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\lambda_1, 142000000000000004603516944108686390442254663680\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_1\right), \mathsf{sin.f64}\left(\phi_2\right)\right), t_1\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), t_1\right)\right)\\ \end{array} \]
Alternative 22
Accuracy71.3%
Cost45704
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\phi_1, -149999999999999995295049161876963328\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{neg.f64}\left(\mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\phi_1, \frac{3794275180128377}{30354201441027016733116592294117482916287606860189680019559568902170379456331382784}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\lambda_2\right)\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\lambda_2\right)\right)\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 23
Accuracy65.1%
Cost39304
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ t_1 := \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_2, \lambda_1\right)\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_1, \frac{5444517870735015}{1361129467683753853853498429727072845824}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, t_1\right)\\ \mathbf{elif}\;\mathsf{<=.f64}\left(\lambda_1, 142000000000000004603516944108686390442254663680\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), t_1\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(\mathsf{sin.f64}\left(\phi_2\right), \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right), \mathsf{sin.f64}\left(\phi_1\right)\right)\right)\right)\\ \end{array} \]
Alternative 24
Accuracy65.7%
Cost39300
\[\begin{array}{l} t_0 := \mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\\ \mathbf{if}\;\mathsf{<=.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \frac{9007197453301141}{9007199254740992}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(t_0, \mathsf{\_.f64}\left(\phi_2, \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{cos.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right)\right)\right)\\ \end{array} \]
Alternative 25
Accuracy53.0%
Cost32713
\[\begin{array}{l} \mathbf{if}\;\mathsf{<=.f64}\left(\phi_1, -1699999999999999909783735687186481152\right) \lor \neg \mathsf{<=.f64}\left(\phi_1, \frac{3390683798607695}{23384026197294446691258957323460528314494920687616}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{*.f64}\left(\mathsf{sin.f64}\left(\phi_1\right), \mathsf{neg.f64}\left(\mathsf{cos.f64}\left(\lambda_1\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \end{array} \]
Alternative 26
Accuracy48.5%
Cost26249
\[\begin{array}{l} \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_1, \frac{2892400118827977}{340282366920938463463374607431768211456}\right) \lor \neg \mathsf{<=.f64}\left(\lambda_1, 9200000000000000565041689464692026735461425953909339054310512317743256248096536844454897655291169185986783679048776330071200771338435229097394176\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \end{array} \]
Alternative 27
Accuracy43.3%
Cost26185
\[\begin{array}{l} \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_1, \frac{-4619473530741721}{69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368}\right) \lor \neg \mathsf{<=.f64}\left(\lambda_1, \frac{3408919107146589}{3705346855594118253554271520278013051304639509300498049262642688253220148477952}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{cos.f64}\left(\phi_2\right), \mathsf{sin.f64}\left(\mathsf{neg.f64}\left(\lambda_2\right)\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \end{array} \]
Alternative 28
Accuracy36.9%
Cost26121
\[\begin{array}{l} \mathbf{if}\;\mathsf{<=.f64}\left(\lambda_1, \frac{-3386706919782613}{36028797018963968}\right) \lor \neg \mathsf{<=.f64}\left(\lambda_1, \frac{712311556242541}{1978643211784836272484020168157177520281050792809694719312504448743177800852254937362531208489944359916781371408129114714810920274454009679740369240815145343332854177189593088}\right):\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{*.f64}\left(\mathsf{sin.f64}\left(\lambda_1\right), \mathsf{cos.f64}\left(\phi_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{atan2.f64}\left(\mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right)\\ \end{array} \]
Alternative 29
Accuracy31.7%
Cost19456
\[\mathsf{atan2.f64}\left(\mathsf{sin.f64}\left(\mathsf{\_.f64}\left(\lambda_1, \lambda_2\right)\right), \mathsf{sin.f64}\left(\phi_2\right)\right) \]

Error

Reproduce?

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