Bearing on a great circle

Time bar (total: 3.7min)

analyze604.0ms (0.3%)

Memory
-11.9MiB live, 219.7MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
7.8%7.8%92%0.2%0%0%0%9
7.8%7.8%92%0.2%0%0%0%10
10.2%10.1%89.7%0.2%0%0%0%11
10.2%10.1%89.7%0.2%0%0%0%12
Compiler

Compiled 55 to 37 computations (32.7% saved)

sample3.7min (99.5%)

Memory
82.0MiB live, 111 790.6MiB allocated
Samples
4.6s5 824×1valid-baseline
3.8s5 824×1valid-sollya
2.0s5 824×1valid-rival
400.0ms2 432×0valid-baseline
383.0ms2 432×0valid-rival
322.0ms2 432×0valid-sollya
Bogosity

preprocess447.0ms (0.2%)

Memory
2.1MiB live, 50.6MiB allocated
Algorithm
egg-herbie
Rules
1 592×fma-define
591×fmm-def
418×unsub-neg
409×distribute-lft-neg-in
275×associate-*r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01151728
12711704
26021680
313081680
426381680
542321680
654211680
757181680
858081680
958661680
1059131680
1169481680
1270401680
1370461680
1470461680
1570461680
1670461680
1770461680
Stop Event
saturated
Calls
Call 1
Inputs
(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)))))
(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)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 (neg.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 (neg.f64 lambda1) lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 (neg.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 (neg.f64 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 (neg.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 phi2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 phi2))) (cos.f64 (-.f64 lambda1 lambda2)))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 (neg.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 (neg.f64 lambda1) lambda2))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 (neg.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 (neg.f64 lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 (neg.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 phi2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 phi2))) (cos.f64 (-.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda2 lambda1)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda2 lambda1)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 phi1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (cos.f64 (-.f64 phi1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 phi2 lambda2)) (cos.f64 lambda1)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 lambda1)) (cos.f64 (-.f64 phi2 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 phi1)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 lambda2) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 phi1)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 phi2)) (cos.f64 lambda2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 lambda2)) (cos.f64 (-.f64 lambda1 phi2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (-.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (*.f64 (sin.f64 phi2) (cos.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
Outputs
(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)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))))))
(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)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 (neg.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 (neg.f64 lambda1) lambda2)))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 (neg.f64 lambda1) lambda2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 (neg.f64 lambda1) lambda2))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (neg.f64 (+.f64 lambda1 lambda2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (+.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 (+.f64 lambda1 lambda2)))) (fma.f64 (neg.f64 (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (+.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
(atan2.f64 (*.f64 (sin.f64 (+.f64 lambda1 lambda2)) (neg.f64 (cos.f64 phi2))) (fma.f64 (neg.f64 (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (+.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 (neg.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 (neg.f64 lambda2))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 (neg.f64 lambda2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 (neg.f64 lambda2))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (+.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (+.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (neg.f64 (cos.f64 phi2))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (+.f64 lambda1 lambda2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (+.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (+.f64 lambda1 lambda2))) (fma.f64 (neg.f64 (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (+.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 (neg.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 phi2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 phi2))) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 phi2))) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 phi1) (neg.f64 (sin.f64 phi2)) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (neg.f64 (cos.f64 phi2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (neg.f64 (fma.f64 (cos.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (neg.f64 (fma.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 (neg.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 (neg.f64 lambda1) lambda2))))))
(neg.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 (neg.f64 lambda1) lambda2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 (neg.f64 lambda1) lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (neg.f64 (+.f64 lambda1 lambda2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (+.f64 lambda1 lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 (+.f64 lambda1 lambda2)))) (fma.f64 (neg.f64 (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (+.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (+.f64 lambda1 lambda2)) (neg.f64 (cos.f64 phi2))) (fma.f64 (neg.f64 (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (+.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 (neg.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 (neg.f64 lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 (neg.f64 lambda2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 (neg.f64 lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (+.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (+.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (neg.f64 (cos.f64 phi2)))))))
(neg.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (+.f64 lambda1 lambda2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (+.f64 lambda1 lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (+.f64 lambda1 lambda2))) (fma.f64 (neg.f64 (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (+.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1)))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 (neg.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 phi2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 phi2))) (cos.f64 (-.f64 lambda1 lambda2))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 phi2))) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 phi1) (neg.f64 (sin.f64 phi2)) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (neg.f64 (cos.f64 phi2)))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (neg.f64 (fma.f64 (cos.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))))
(neg.f64 (atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (neg.f64 (fma.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda2 lambda1)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda2 lambda1)))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda2 lambda1))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda2 lambda1))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda2 lambda1))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda2 lambda1))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 phi1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (cos.f64 (-.f64 phi1 lambda2)))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 phi1 lambda2))) (-.f64 (*.f64 (sin.f64 phi2) (cos.f64 lambda1)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 lambda1)) (cos.f64 (-.f64 phi1 lambda2)))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 phi1 lambda2))) (-.f64 (*.f64 (sin.f64 phi2) (cos.f64 lambda1)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda1) (cos.f64 (-.f64 phi1 lambda2))))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 phi1 lambda2))) (fma.f64 (cos.f64 (-.f64 phi1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 lambda1))) (*.f64 (sin.f64 phi2) (cos.f64 lambda1))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 phi1 lambda2))) (fma.f64 (neg.f64 (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (cos.f64 (-.f64 lambda2 phi1))) (*.f64 (sin.f64 phi2) (cos.f64 lambda1))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 phi2 lambda2)) (cos.f64 lambda1)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 lambda1)) (cos.f64 (-.f64 phi2 lambda2)))))
(atan2.f64 (*.f64 (cos.f64 lambda1) (sin.f64 (-.f64 phi2 lambda2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda1)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 lambda1) (cos.f64 (-.f64 phi2 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 phi1)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 lambda2) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 phi1)))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 phi1))) (-.f64 (*.f64 (sin.f64 phi2) (cos.f64 lambda2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 lambda2)) (cos.f64 (-.f64 lambda1 phi1)))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 phi1))) (fma.f64 (*.f64 (cos.f64 phi2) (sin.f64 lambda2)) (neg.f64 (cos.f64 (-.f64 lambda1 phi1))) (*.f64 (sin.f64 phi2) (cos.f64 lambda2))))
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 phi1))) (-.f64 (*.f64 (sin.f64 phi2) (cos.f64 lambda2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 lambda2)) (cos.f64 (-.f64 phi1 lambda1)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 phi2)) (cos.f64 lambda2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 lambda2)) (cos.f64 (-.f64 lambda1 phi2)))))
(atan2.f64 (*.f64 (cos.f64 lambda2) (sin.f64 (-.f64 lambda1 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda2)) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 lambda2) (cos.f64 (-.f64 lambda1 phi2))))))
(atan2.f64 (*.f64 (cos.f64 lambda2) (sin.f64 (-.f64 lambda1 phi2))) (fma.f64 (cos.f64 phi1) (sin.f64 lambda2) (*.f64 (cos.f64 (-.f64 lambda1 phi2)) (*.f64 (sin.f64 phi1) (neg.f64 (cos.f64 lambda2))))))
(atan2.f64 (*.f64 (cos.f64 lambda2) (sin.f64 (-.f64 lambda1 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda2) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 phi2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (-.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (*.f64 (sin.f64 phi2) (cos.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (-.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 phi2) (*.f64 (cos.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (-.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (-.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (neg.f64 (cos.f64 phi1))) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
Compiler

Compiled 28 to 17 computations (39.3% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 4 to 4 computations (0% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
77.9%
(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)))))
Compiler

Compiled 56 to 34 computations (39.3% saved)

simplify3.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Rules
10×*-commutative
sub-neg
+-commutative
neg-sub0
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025104
136104
257104
369104
478104
581104
Stop Event
saturated
Calls
Call 1
Inputs
(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)))))
Outputs
(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)))))
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 28 to 17 computations (39.3% saved)

preprocess30.0ms (0%)

Memory
-7.6MiB live, 24.5MiB allocated
Compiler

Compiled 112 to 68 computations (39.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...