Details

Time bar (total: 36.3s)

analyze5.3s (14.6%)

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.9s (32.7%)

Results
8.7s4049×body1024valid
1.6s1345×body512valid
860.0ms2267×body128valid
415.0ms577×body256valid
76.0ms18×body2048valid
Compiler

Compiled 116 to 71 computations (38.8% saved)

simplify51.0ms (0.1%)

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.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
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 (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
(*.f64 (sin.f64 theta) (sin.f64 delta))
0.2b
(*.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.3b
(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)))))))

series129.0ms (0.4%)

Counts
4 → 132
Calls

4 calls:

62.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)))))))
50.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))))))
10.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))
6.0ms
(asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))

rewrite54.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
101×egg-rr
Counts
4 → 101
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01888
137288
2496488
000
100

simplify173.0ms (0.5%)

Algorithm
egg-herbie
Rules
849×cancel-sign-sub-inv_binary64
743×associate-*l*_binary64
354×sub-neg_binary64
345×fma-neg_binary64
278×distribute-rgt-neg-in_binary64
Counts
233 → 168
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01443588
14733470
215553362
342523362
449603362
549813362
649813362

prune313.0ms (0.9%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1608168
Fresh000
Picked101
Done000
Total1618169
Error
0.0b
Counts
169 → 8
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (+.f64 (*.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))))))))
10.1b
(+.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)))))))
22.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (+.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))) (-.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.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)) (cbrt.f64 (pow.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))))) 3))))
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))))))))
3.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) 3)) (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)))))))))
7.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 delta)) (sin.f64 theta))) (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)))))))))
14.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.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))))))))
Compiler

Compiled 7867 to 1924 computations (75.5% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 theta) (sin.f64 delta))
0.2b
(*.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)))))
52.4b
(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)))))

series404.0ms (1.1%)

Counts
3 → 108
Calls

3 calls:

236.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)))))
116.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)))))
52.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))

rewrite120.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
79×egg-rr
Counts
3 → 79
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
016111
1341106
24069106
34966106
45282106
000
100

simplify109.0ms (0.3%)

Algorithm
egg-herbie
Rules
720×fma-def_binary64
689×cancel-sign-sub-inv_binary64
615×associate-*r*_binary64
584×associate-*l*_binary64
333×sub-neg_binary64
Counts
187 → 128
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01082464
13562354
211942263
344522263
449522263
550452263

prune569.0ms (1.6%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2081209
Fresh167
Picked011
Done000
Total2098217
Error
0.0b
Counts
217 → 8
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (+.f64 (*.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))))))))
10.1b
(+.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)))))))
22.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (+.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))) (-.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.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)) (cbrt.f64 (pow.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))))) 3))))
3.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) 3)) (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.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))))))))
7.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 delta)) (sin.f64 theta))) (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)))))))))
14.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.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))))))))
Compiler

Compiled 15909 to 2261 computations (85.8% saved)

localize31.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (+.f64 (*.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))))))
0.3b
(pow.f64 (cos.f64 delta) 3)
0.3b
(-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3))
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)))) 3)

series10.5s (28.9%)

Counts
4 → 112
Calls

4 calls:

10.0s
(*.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (+.f64 (*.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))))))
285.0ms
(-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3))
146.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)))) 3)
6.0ms
(pow.f64 (cos.f64 delta) 3)

rewrite97.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
104×egg-rr
Counts
4 → 104
Calls

2 calls:

91.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)))) 3) (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (pow.f64 (cos.f64 delta) 3) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (+.f64 (*.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)))))))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025176
1552174
24961174
35178174
000
100

simplify793.0ms (2.2%)

Algorithm
egg-herbie
Rules
400×associate-+r+_binary64
380×associate-*r*_binary64
362×fma-def_binary64
253×associate-/l*_binary64
237×associate-/r*_binary64
Counts
216 → 195
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0154489385
1534689385

prune2.0s (5.6%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1950195
Fresh066
Picked011
Done011
Total1958203
Error
0.0b
Counts
203 → 8
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (+.f64 (*.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))))))))
10.1b
(+.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)))))))
22.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (+.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))) (-.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.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)) (cbrt.f64 (pow.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))))) 3))))
3.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) 3)) (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.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))))))))
7.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 delta)) (sin.f64 theta))) (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)))))))))
14.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.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))))))))
Compiler

Compiled 121433 to 56032 computations (53.9% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.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
(cbrt.f64 (pow.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))))) 3))
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)))))
0.5b
(pow.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))))) 3)

series296.0ms (0.8%)

Counts
2 → 72
Calls

2 calls:

236.0ms
(pow.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))))) 3)
60.0ms
(cbrt.f64 (pow.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))))) 3))

rewrite79.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
76×egg-rr
Counts
2 → 76
Calls

2 calls:

76.0ms
((pow.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))))) 3) (cbrt.f64 (pow.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))))) 3)))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01765
134265
2424465
3510465
000
100

simplify115.0ms (0.3%)

Algorithm
egg-herbie
Rules
634×associate-*l*_binary64
579×fma-def_binary64
443×associate-+r+_binary64
393×*-commutative_binary64
314×+-commutative_binary64
Counts
148 → 125
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03754920
113314841
246974841
349934841

prune633.0ms (1.7%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New2290229
Fresh055
Picked011
Done022
Total2298237
Error
0.0b
Counts
237 → 8
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (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)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))) (+.f64 (*.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))))))))
10.1b
(+.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)))))))
22.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (+.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))) (-.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.f64 (*.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)) (cbrt.f64 (pow.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))))) 3))))
3.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) 3)) (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.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))))))))
7.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 delta)) (sin.f64 theta))) (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)))))))))
14.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (fma.f64 (sqrt.f64 (cos.f64 delta)) (sqrt.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))))))))
Compiler

Compiled 13759 to 4316 computations (68.6% saved)

regimes2.3s (6.4%)

Accuracy

Total 0.1b remaining (56.3%)

Threshold costs 0.1b (56.3%)

Counts
221 → 1
Compiler

Compiled 74359 to 38094 computations (48.8% saved)

simplify4.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
023105
139105
248105
353105
455105
555105

end213.0ms (0.6%)

Compiler

Compiled 567 to 238 computations (58% saved)

Profiling

Loading profile data...