Destination given bearing on a great circle

Time bar (total: 5.9s)

analyze1.4s (24.4%)

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
0%0%99.8%0.2%0%0%0%9
0%0%99.8%0.2%0%0%0%10
1.6%1.6%98.2%0.2%0%0%0%11
1.6%1.6%98.2%0.2%0%0%0%12
Compiler

Compiled 39 to 24 computations (38.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.0s
ival-sin: 348.0ms (33.9% of total)
ival-mult: 323.0ms (31.5% of total)
ival-cos: 200.0ms (19.5% of total)
ival-atan2: 44.0ms (4.3% of total)
ival-asin: 42.0ms (4.1% of total)
ival-add: 40.0ms (3.9% of total)
ival-sub: 26.0ms (2.5% of total)
const: 3.0ms (0.3% of total)

sample3.7s (62.8%)

Results
3.2s8256×256valid
Precisions
Click to see histograms. Total time spent on operations: 2.8s
ival-sin: 839.0ms (30% of total)
ival-cos: 650.0ms (23.2% of total)
ival-asin: 542.0ms (19.4% of total)
ival-mult: 461.0ms (16.5% of total)
ival-atan2: 144.0ms (5.1% of total)
ival-add: 108.0ms (3.9% of total)
ival-sub: 46.0ms (1.6% of total)
const: 7.0ms (0.3% of total)
Bogosity

preprocess367.0ms (6.3%)

Algorithm
egg-herbie
Rules
785×fma-define
709×fma-neg
513×sub-neg
432×distribute-lft-neg-in
393×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01883104
14263084
27823076
314763076
432213076
552063076
662663076
769963076
873813076
975463076
1076503076
1177823076
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 (neg.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 (neg.f64 phi1)) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 (neg.f64 delta))) (cos.f64 phi1)) (-.f64 (cos.f64 (neg.f64 delta)) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 delta))) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 delta))) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 theta)) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 (neg.f64 theta))))))))))
(neg.f64 (+.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 (neg.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 (neg.f64 phi1)) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 delta)) (cos.f64 theta))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 (neg.f64 delta))) (cos.f64 phi1)) (-.f64 (cos.f64 (neg.f64 delta)) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 delta))) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 delta))) (cos.f64 theta))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 theta)) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 (neg.f64 theta)))))))))))
(+.f64 phi1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 lambda1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 lambda1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 lambda1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 phi2 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 delta (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 lambda1)) (cos.f64 phi1)) (-.f64 (cos.f64 lambda1) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 lambda1)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda1)) (cos.f64 theta)))))))))
(+.f64 theta (atan2.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 lambda1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi2)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi2) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi2) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 phi1)) (cos.f64 delta)) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 delta)) (cos.f64 theta)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 theta) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 theta) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (sin.f64 delta)) (cos.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 phi2)) (cos.f64 phi1)) (-.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 phi2) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 phi2)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) (cos.f64 phi1)) (-.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 theta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 theta)) (cos.f64 delta)))))))))
Outputs
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(+.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))) (neg.f64 lambda1))
(-.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))) lambda1)
(-.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) lambda1)
(-.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))) lambda1)
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 (neg.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 (neg.f64 phi1)) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (neg.f64 (sin.f64 phi1)) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (neg.f64 (sin.f64 phi1))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (-.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 (neg.f64 delta))) (cos.f64 phi1)) (-.f64 (cos.f64 (neg.f64 delta)) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 delta))) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 delta))) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 delta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (neg.f64 (sin.f64 delta)) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 delta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (neg.f64 (sin.f64 delta))) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 theta))) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (-.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 theta)) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 (neg.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (neg.f64 (sin.f64 theta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 delta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(neg.f64 (+.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))))
(neg.f64 (+.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))) (neg.f64 lambda1)))
(-.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(-.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
(-.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 (neg.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 (neg.f64 phi1)) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 (neg.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 (neg.f64 phi1)) (sin.f64 delta)) (cos.f64 theta))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (neg.f64 (sin.f64 phi1)) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)))))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (neg.f64 (sin.f64 phi1))))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (-.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)))))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 (neg.f64 delta))) (cos.f64 phi1)) (-.f64 (cos.f64 (neg.f64 delta)) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 (neg.f64 delta))) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 (neg.f64 delta))) (cos.f64 theta))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 delta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (neg.f64 (sin.f64 delta)) (cos.f64 theta)))))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 delta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (neg.f64 (sin.f64 delta))) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 theta))) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (-.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))) (cos.f64 delta))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (neg.f64 theta)) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 (neg.f64 theta)))))))))))
(neg.f64 (+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (neg.f64 (sin.f64 theta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)))))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (neg.f64 (sin.f64 delta)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
(-.f64 (neg.f64 lambda1) (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (neg.f64 (cos.f64 phi1)))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(+.f64 phi1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 lambda1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 lambda1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 lambda1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 phi1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 lambda1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 lambda1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 lambda1) (cos.f64 delta) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 lambda1))))))))))
(+.f64 phi1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (sin.f64 theta) (cos.f64 lambda1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 lambda1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 lambda1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 lambda1))))))))))
(+.f64 phi1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (sin.f64 theta) (cos.f64 lambda1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 lambda1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 lambda1)) (*.f64 (cos.f64 delta) (sin.f64 lambda1)))))))))
(+.f64 phi1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 lambda1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 lambda1)) (*.f64 (cos.f64 delta) (sin.f64 lambda1))))) (neg.f64 (sin.f64 lambda1)) (cos.f64 delta))))
(+.f64 phi2 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))) phi2)
(+.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))) phi2)
(+.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) phi2)
(+.f64 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))) phi2)
(+.f64 delta (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 lambda1)) (cos.f64 phi1)) (-.f64 (cos.f64 lambda1) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 lambda1)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 lambda1)) (cos.f64 theta)))))))))
(+.f64 delta (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 theta) (sin.f64 lambda1))) (-.f64 (cos.f64 lambda1) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 lambda1) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 lambda1) (cos.f64 theta))))))))))
(+.f64 delta (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 theta) (sin.f64 lambda1))) (-.f64 (cos.f64 lambda1) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 lambda1) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 lambda1)))))))))
(+.f64 delta (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 theta) (sin.f64 lambda1))) (-.f64 (cos.f64 lambda1) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))
(+.f64 delta (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 theta) (sin.f64 lambda1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (sin.f64 lambda1)) (*.f64 (sin.f64 phi1) (cos.f64 lambda1))))) (cos.f64 lambda1))))
(+.f64 delta (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 theta) (sin.f64 lambda1))) (-.f64 (cos.f64 lambda1) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (sin.f64 lambda1)) (*.f64 (sin.f64 phi1) (cos.f64 lambda1)))))))))
(+.f64 theta (atan2.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 lambda1)))))))))
(+.f64 theta (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 lambda1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 lambda1))))))))))
(+.f64 theta (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 lambda1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 lambda1) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 theta (atan2.f64 (*.f64 (sin.f64 lambda1) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi2)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi2) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi2) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi2))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi2) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi2) (cos.f64 delta) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi2))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi2))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi2) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi2) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi2))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi2))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi2) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi2)) (*.f64 (cos.f64 delta) (sin.f64 phi2)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi2))) (fma.f64 (sin.f64 phi2) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi2)) (*.f64 (cos.f64 delta) (sin.f64 phi2)))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 phi1)) (cos.f64 delta)) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 delta) (sin.f64 phi1))) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (cos.f64 phi1) (*.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 delta) (sin.f64 phi1))) (fma.f64 (neg.f64 (sin.f64 delta)) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (cos.f64 phi1) (*.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (cos.f64 theta)))))) (cos.f64 phi1))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 delta)) (cos.f64 theta)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 theta) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 theta) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (sin.f64 delta)) (cos.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (sin.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 theta) (sin.f64 (asin.f64 (fma.f64 (sin.f64 theta) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (sin.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 theta) (sin.f64 (asin.f64 (fma.f64 (sin.f64 theta) (cos.f64 delta) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (sin.f64 phi1))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 theta) (sin.f64 (asin.f64 (fma.f64 (sin.f64 theta) (cos.f64 delta) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (cos.f64 theta))) (fma.f64 (sin.f64 theta) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 theta) (cos.f64 delta) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 phi2)) (cos.f64 phi1)) (-.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) (-.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 phi2) (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) (fma.f64 (neg.f64 (sin.f64 phi1)) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))))) (cos.f64 phi2))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 phi2) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 phi2)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 phi2))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 delta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (cos.f64 phi2))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi2) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) (cos.f64 phi1)) (-.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 theta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 theta)) (cos.f64 delta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (cos.f64 theta) (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 theta) (cos.f64 delta))))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 phi1) (*.f64 (sin.f64 theta) (cos.f64 delta)) (*.f64 (sin.f64 phi1) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 phi1) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 theta) (*.f64 (cos.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 phi1) (cos.f64 theta)))))) (cos.f64 theta))))
Symmetry

(abs phi2)

explain339.0ms (5.8%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
45(7.641532214673607e+291 1.6674061882484224e+103 2.055716451434901e-164 3.044496385180486e-48 -3.6067339499753465e+36)2(1703531.8989696559 -1.0961176150643626e+141 9.988498475988333e-14 1.6174681109885938e+74 9.021326181620635e-194)(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))
00-0-(cos.f64 phi1)
00-0-(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
00-0-(cos.f64 delta)
00-0-(sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))
00-0-(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
00-0-(sin.f64 delta)
00-0-(*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))
00-0-(*.f64 (cos.f64 phi1) (sin.f64 delta))
00-0-phi1
00-0-(*.f64 (sin.f64 theta) (sin.f64 delta))
00-0-(+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))
00-0-lambda1
00-0-(atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
00-0-(sin.f64 phi1)
00-0-(*.f64 (sin.f64 phi1) (cos.f64 delta))
00-0-(*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1))
00-0-delta
00-0-(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))
00-0-(sin.f64 theta)
00-0-theta
00-0-(cos.f64 theta)
Results
238.0ms512×256valid
Compiler

Compiled 444 to 71 computations (84% saved)

Precisions
Click to see histograms. Total time spent on operations: 158.0ms
ival-sin: 51.0ms (32.2% of total)
ival-cos: 40.0ms (25.3% of total)
ival-asin: 28.0ms (17.7% of total)
ival-mult: 22.0ms (13.9% of total)
ival-atan2: 8.0ms (5.1% of total)
ival-add: 5.0ms (3.2% of total)
ival-sub: 3.0ms (1.9% of total)
const: 0.0ms (0% of total)

eval0.0ms (0%)

Compiler

Compiled 5 to 5 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Compiler

Compiled 76 to 46 computations (39.5% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
sub-neg
neg-sub0
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
030142
143142
255142
361142
465142
566142
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Outputs
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))

soundness1.0ms (0%)

Stop Event
fuel
Compiler

Compiled 38 to 23 computations (39.5% saved)

preprocess34.0ms (0.6%)

Remove

(abs phi2)

Compiler

Compiled 304 to 184 computations (39.5% saved)

end0.0ms (0%)

Profiling

Loading profile data...