Details

Time bar (total: 25.6s)

analyze4.8s (18.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
0%99.8%0.2%9
0%99.8%0.2%10
0.8%99%0.2%11
1.2%98.6%0.2%12
9.9%89.8%0.2%13
9.9%89.8%0.2%14
Compiler

Compiled 39 to 24 computations (38.5% saved)

sample11.7s (45.5%)

Results
8.2s4068×body1024valid
1.7s1364×body512valid
877.0ms2270×body128valid
408.0ms546×body256valid
36.0msbody2048valid
Compiler

Compiled 116 to 71 computations (38.8% saved)

simplify56.0ms (0.2%)

Algorithm
egg-herbie
Rules
571×fma-def_binary64
244×fma-neg_binary64
103×unsub-neg_binary64
90×associate-*l*_binary64
88×distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02353
14053
26653
38553
49953
513353
617353
721753
828153
930553
1036253
1140753
1246853
1360453
1472853
1583653
1694353
1789153
1889353
1989953
2090453
2184153

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.1b
(+.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 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
Compiler

Compiled 144 to 76 computations (47.2% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(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 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
0.2b
(asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
0.3b
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))
0.4b
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))

series164.0ms (0.6%)

Counts
4 → 144
Calls

4 calls:

89.0ms
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))
57.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))
10.0ms
(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 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
8.0ms
(asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))

rewrite103.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
586×prod-diff_binary64
221×add-sqr-sqrt_binary64
206×log1p-expm1-u_binary64
206×expm1-log1p-u_binary64
203×add-log-exp_binary64
Counts
4 → 115
Calls

4 calls:

98.0ms
(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 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
98.0ms
(asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
98.0ms
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))
98.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020126
1412126
24903126
36218126

simplify137.0ms (0.5%)

Algorithm
egg-herbie
Rules
727×fma-def_binary64
688×cancel-sign-sub-inv_binary64
626×associate-*r*_binary64
593×associate-*l*_binary64
284×fma-neg_binary64
Counts
259 → 167
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01154912
13724802
212224711
345054711
449734711

prune319.0ms (1.2%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New15710167
Fresh000
Picked101
Done000
Total15810168
Error
0.0b
Counts
168 → 10
Alt Table
StatusErrorProgram
12.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (log.f64 (exp.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
6.4b
(+.f64 lambda1 (expm1.f64 (log1p.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
0.2b
(+.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 (-.f64 (/.f64 (PI.f64) 2) (acos.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (cbrt.f64 (cos.f64 delta)) (neg.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
8.5b
(+.f64 lambda1 (log.f64 (exp.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
28.7b
(+.f64 lambda1 (pow.f64 (sqrt.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))) 2))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (/.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))))))
28.9b
(+.f64 lambda1 (exp.f64 (log.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
Compiler

Compiled 9273 to 2004 computations (78.4% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))
0.3b
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
0.4b
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))
53.6b
(fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))

series385.0ms (1.5%)

Counts
4 → 144
Calls

4 calls:

263.0ms
(fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))
55.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))
47.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
19.0ms
(atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))

rewrite96.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
243×add-sqr-sqrt_binary64
227×log1p-expm1-u_binary64
227×expm1-log1p-u_binary64
222×add-cbrt-cube_binary64
222×add-exp-log_binary64
Counts
4 → 96
Calls

4 calls:

91.0ms
(atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))
91.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
91.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))
91.0ms
(fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
021213
1458157
24700157
34949157

simplify152.0ms (0.6%)

Algorithm
egg-herbie
Rules
766×fma-def_binary64
722×cancel-sign-sub-inv_binary64
628×associate-*r*_binary64
601×associate-*l*_binary64
285×fma-neg_binary64
Counts
240 → 147
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01186136
13825918
212664855
346403919
450633919

prune526.0ms (2.1%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1831184
Fresh189
Picked101
Done000
Total1859194
Error
0.0b
Counts
194 → 9
Alt Table
StatusErrorProgram
6.4b
(+.f64 lambda1 (expm1.f64 (log1p.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
0.2b
(+.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 (-.f64 (/.f64 (PI.f64) 2) (acos.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (cbrt.f64 (cos.f64 delta)) (neg.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
8.5b
(+.f64 lambda1 (log.f64 (exp.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
28.7b
(+.f64 lambda1 (pow.f64 (sqrt.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))) 2))
12.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (log.f64 (exp.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (/.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))))))
28.9b
(+.f64 lambda1 (exp.f64 (log.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
Compiler

Compiled 15864 to 2051 computations (87.1% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)))
0.3b
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
0.3b
(-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))
0.4b
(pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)

series1.4s (5.5%)

Counts
3 → 108
Calls

3 calls:

1.2s
(/.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)))
117.0ms
(-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))
77.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)

rewrite89.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
545×prod-diff_binary64
209×add-sqr-sqrt_binary64
202×log1p-expm1-u_binary64
202×expm1-log1p-u_binary64
195×add-cube-cbrt_binary64
Counts
3 → 84
Calls

3 calls:

85.0ms
(/.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)))
85.0ms
(-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))
85.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019136
1415100
24700100
35818100

simplify228.0ms (0.9%)

Algorithm
egg-herbie
Rules
664×times-frac_binary64
476×fma-def_binary64
441×associate-/l*_binary64
265×*-commutative_binary64
177×associate-*r*_binary64
Counts
192 → 157
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
062317235
1213717217
2505817217

prune912.0ms (3.6%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2283231
Fresh088
Picked101
Done000
Total22911240
Error
0.0b
Counts
240 → 11
Alt Table
StatusErrorProgram
8.5b
(+.f64 lambda1 (log.f64 (exp.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (cbrt.f64 (pow.f64 (/.f64 1 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))) 3)))))
6.4b
(+.f64 lambda1 (expm1.f64 (log1p.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
0.2b
(+.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 (-.f64 (/.f64 (PI.f64) 2) (acos.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (/.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (log1p.f64 (expm1.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (cbrt.f64 (cos.f64 delta)) (neg.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
28.7b
(+.f64 lambda1 (pow.f64 (sqrt.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))) 2))
12.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (log.f64 (exp.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (*.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))) (cos.f64 delta)) (/.f64 1 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)))))))
28.9b
(+.f64 lambda1 (exp.f64 (log.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
Compiler

Compiled 28976 to 12073 computations (58.3% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))) (cos.f64 delta)) (/.f64 1 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))))
0.3b
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
0.3b
(-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))
0.4b
(pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)

series1.2s (4.8%)

Counts
1 → 36
Calls

1 calls:

1.2s
(*.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))) (cos.f64 delta)) (/.f64 1 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))))

rewrite67.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
420×prod-diff_binary64
217×add-sqr-sqrt_binary64
207×log1p-expm1-u_binary64
207×expm1-log1p-u_binary64
202×add-cbrt-cube_binary64
Counts
1 → 20
Calls

1 calls:

66.0ms
(*.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))) (cos.f64 delta)) (/.f64 1 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02168
144268
2467068
3555068

simplify167.0ms (0.7%)

Algorithm
egg-herbie
Rules
662×times-frac_binary64
439×associate-/l*_binary64
360×associate-/r*_binary64
276×fma-def_binary64
221×*-commutative_binary64
Counts
56 → 44
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
052112501
1174712495
2500712495

prune773.0ms (3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1860186
Fresh01010
Picked011
Done000
Total18611197
Error
0.0b
Counts
197 → 11
Alt Table
StatusErrorProgram
8.5b
(+.f64 lambda1 (log.f64 (exp.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (cbrt.f64 (pow.f64 (/.f64 1 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))) 3)))))
6.4b
(+.f64 lambda1 (expm1.f64 (log1p.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
0.2b
(+.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 (-.f64 (/.f64 (PI.f64) 2) (acos.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (/.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))) (log1p.f64 (expm1.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (cbrt.f64 (cos.f64 delta)) (neg.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
28.7b
(+.f64 lambda1 (pow.f64 (sqrt.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))) 2))
12.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (log.f64 (exp.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 1 (*.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))) (cos.f64 delta)) (/.f64 1 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) 2)))))))
28.9b
(+.f64 lambda1 (exp.f64 (log.f64 (atan2.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))))))
Compiler

Compiled 25956 to 11391 computations (56.1% saved)

regimes1.9s (7.5%)

Accuracy

Total 0.1b remaining (60.3%)

Threshold costs 0.1b (60.3%)

Counts
186 → 1
Compiler

Compiled 65910 to 36106 computations (45.2% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02049
13149
24149
34749
45149
55249
65249

end258.0ms (1%)

Compiler

Compiled 569 to 309 computations (45.7% saved)

Profiling

Loading profile data...