Bearing on a great circle

Time bar (total: 6.5s)

analyze796.0ms (12.3%)

Memory
10.7MiB live, 804.0MiB 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 26 to 19 computations (26.9% saved)

sample5.5s (84.8%)

Memory
91.9MiB live, 5 665.7MiB allocated
Samples
4.4s5 858×1valid
543.0ms2 398×0valid
Precisions
Click to see histograms. Total time spent on operations: 4.6s
ival-sin: 1.8s (39.9% of total)
ival-cos: 1.7s (38.1% of total)
ival-mult: 455.0ms (10% of total)
adjust: 189.0ms (4.1% of total)
ival-sub: 177.0ms (3.9% of total)
ival-atan2: 171.0ms (3.7% of total)
ival-true: 8.0ms (0.2% of total)
ival-assert: 4.0ms (0.1% of total)
Bogosity

preprocess189.0ms (2.9%)

Memory
-47.9MiB live, 85.1MiB allocated
Algorithm
egg-herbie
Rules
876×unsub-neg
814×distribute-lft-neg-in
554×associate-*r*
512×accelerator-lowering-fma.f32
512×accelerator-lowering-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0107376
1250370
2543368
31130368
42110368
53121368
63941368
74236368
84326368
94384368
104431368
114671368
124763368
134763368
144763368
154763368
164763368
01724
13024
26224
311924
417324
524624
635924
746624
864524
974624
1080324
080324
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2)))))
Outputs
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2)))))
(atan2.f64 (fma.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) #s(literal 0 binary64)) (fma.f64 (cos.f64 phi1) (sin.f64 phi2) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (-.f64 #s(literal 0 binary64) (fma.f64 (cos.f64 phi2) (sin.f64 phi1) #s(literal 0 binary64))) #s(literal 0 binary64))))
Call 2
Inputs
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- (neg lambda1) lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- (neg lambda1) lambda2)))))
(atan2 (* (sin (- lambda1 (neg lambda2))) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 (neg lambda2))))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos (neg phi1)) (sin phi2)) (* (* (sin (neg phi1)) (cos phi2)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- lambda1 lambda2)) (cos (neg phi2))) (- (* (cos phi1) (sin (neg phi2))) (* (* (sin phi1) (cos (neg phi2))) (cos (- lambda1 lambda2)))))
(neg (atan2 (* (sin (- (neg lambda1) lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- (neg lambda1) lambda2))))))
(neg (atan2 (* (sin (- lambda1 (neg lambda2))) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 (neg lambda2)))))))
(neg (atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos (neg phi1)) (sin phi2)) (* (* (sin (neg phi1)) (cos phi2)) (cos (- lambda1 lambda2))))))
(neg (atan2 (* (sin (- lambda1 lambda2)) (cos (neg phi2))) (- (* (cos phi1) (sin (neg phi2))) (* (* (sin phi1) (cos (neg phi2))) (cos (- lambda1 lambda2))))))
(atan2 (* (sin (- lambda2 lambda1)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda2 lambda1)))))
(atan2 (* (sin (- phi1 lambda2)) (cos phi2)) (- (* (cos lambda1) (sin phi2)) (* (* (sin lambda1) (cos phi2)) (cos (- phi1 lambda2)))))
(atan2 (* (sin (- phi2 lambda2)) (cos lambda1)) (- (* (cos phi1) (sin lambda1)) (* (* (sin phi1) (cos lambda1)) (cos (- phi2 lambda2)))))
(atan2 (* (sin (- lambda1 phi1)) (cos phi2)) (- (* (cos lambda2) (sin phi2)) (* (* (sin lambda2) (cos phi2)) (cos (- lambda1 phi1)))))
(atan2 (* (sin (- lambda1 phi2)) (cos lambda2)) (- (* (cos phi1) (sin lambda2)) (* (* (sin phi1) (cos lambda2)) (cos (- lambda1 phi2)))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi1)) (- (* (cos phi2) (sin phi1)) (* (* (sin phi2) (cos phi1)) (cos (- lambda1 lambda2)))))
Outputs
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (cos phi2) (sin phi1)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- (neg lambda1) lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- (neg lambda1) lambda2)))))
(atan2 (* (cos phi2) (sin (- (neg lambda1) lambda2))) (- (* (cos phi1) (sin phi2)) (* (sin phi1) (* (cos phi2) (cos (+ lambda1 lambda2))))))
(atan2 (* (sin (- lambda1 (neg lambda2))) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 (neg lambda2))))))
(atan2 (* (cos phi2) (sin (+ lambda1 lambda2))) (- (* (cos phi1) (sin phi2)) (* (sin phi1) (* (cos phi2) (cos (+ lambda1 lambda2))))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos (neg phi1)) (sin phi2)) (* (* (sin (neg phi1)) (cos phi2)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (+ (* (cos phi1) (sin phi2)) (* (* (cos phi2) (sin phi1)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- lambda1 lambda2)) (cos (neg phi2))) (- (* (cos phi1) (sin (neg phi2))) (* (* (sin phi1) (cos (neg phi2))) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi2) (* (cos (- lambda1 lambda2)) (neg (sin phi1)))) (* (cos phi1) (sin phi2))))
(neg (atan2 (* (sin (- (neg lambda1) lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- (neg lambda1) lambda2))))))
(neg (atan2 (* (cos phi2) (sin (- (neg lambda1) lambda2))) (- (* (cos phi1) (sin phi2)) (* (sin phi1) (* (cos phi2) (cos (+ lambda1 lambda2)))))))
(neg (atan2 (* (sin (- lambda1 (neg lambda2))) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 (neg lambda2)))))))
(neg (atan2 (* (cos phi2) (sin (+ lambda1 lambda2))) (- (* (cos phi1) (sin phi2)) (* (sin phi1) (* (cos phi2) (cos (+ lambda1 lambda2)))))))
(neg (atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos (neg phi1)) (sin phi2)) (* (* (sin (neg phi1)) (cos phi2)) (cos (- lambda1 lambda2))))))
(neg (atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (+ (* (cos phi1) (sin phi2)) (* (* (cos phi2) (sin phi1)) (cos (- lambda1 lambda2))))))
(neg (atan2 (* (sin (- lambda1 lambda2)) (cos (neg phi2))) (- (* (cos phi1) (sin (neg phi2))) (* (* (sin phi1) (cos (neg phi2))) (cos (- lambda1 lambda2))))))
(neg (atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi2) (* (cos (- lambda1 lambda2)) (neg (sin phi1)))) (* (cos phi1) (sin phi2)))))
(atan2 (* (sin (- lambda2 lambda1)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda2 lambda1)))))
(atan2 (* (cos phi2) (sin (- lambda2 lambda1))) (- (* (cos phi1) (sin phi2)) (* (* (cos phi2) (sin phi1)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- phi1 lambda2)) (cos phi2)) (- (* (cos lambda1) (sin phi2)) (* (* (sin lambda1) (cos phi2)) (cos (- phi1 lambda2)))))
(atan2 (* (cos phi2) (sin (- phi1 lambda2))) (- (* (sin phi2) (cos lambda1)) (* (cos phi2) (* (sin lambda1) (cos (- phi1 lambda2))))))
(atan2 (* (sin (- phi2 lambda2)) (cos lambda1)) (- (* (cos phi1) (sin lambda1)) (* (* (sin phi1) (cos lambda1)) (cos (- phi2 lambda2)))))
(atan2 (* (cos lambda1) (sin (- phi2 lambda2))) (- (* (cos phi1) (sin lambda1)) (* (sin phi1) (* (cos lambda1) (cos (- phi2 lambda2))))))
(atan2 (* (sin (- lambda1 phi1)) (cos phi2)) (- (* (cos lambda2) (sin phi2)) (* (* (sin lambda2) (cos phi2)) (cos (- lambda1 phi1)))))
(atan2 (* (cos phi2) (sin (- lambda1 phi1))) (- (* (sin phi2) (cos lambda2)) (* (cos phi2) (* (sin lambda2) (cos (- lambda1 phi1))))))
(atan2 (* (sin (- lambda1 phi2)) (cos lambda2)) (- (* (cos phi1) (sin lambda2)) (* (* (sin phi1) (cos lambda2)) (cos (- lambda1 phi2)))))
(atan2 (* (cos lambda2) (sin (- lambda1 phi2))) (- (* (cos phi1) (sin lambda2)) (* (sin phi1) (* (cos lambda2) (cos (- lambda1 phi2))))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi1)) (- (* (cos phi2) (sin phi1)) (* (* (sin phi2) (cos phi1)) (cos (- lambda1 lambda2)))))
(atan2 (* (sin (- lambda1 lambda2)) (cos phi1)) (- (* (cos phi2) (sin phi1)) (* (cos phi1) (* (sin phi2) (cos (- lambda1 lambda2))))))

explain0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Compiler

Compiled 92 to 19 computations (79.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...