Details

Time bar (total: 29.9s)

analyze5.0s (16.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)

sample13.6s (45.5%)

Results
9.8s4080×body1024valid
2.1s1383×body512valid
935.0ms2201×body128valid
471.0ms585×body256valid
32.0msbody2048valid
Compiler

Compiled 116 to 71 computations (38.8% saved)

simplify82.0ms (0.3%)

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

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
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)))))))))
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 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Compiler

Compiled 220 to 122 computations (44.5% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.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.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)))))))

series137.0ms (0.5%)

Counts
4 → 144
Calls

4 calls:

58.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)))))))
49.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))))))
24.0ms
(*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))
6.0ms
(asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))

rewrite92.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
319×expm1-udef_binary64
319×log1p-udef_binary64
176×add-sqr-sqrt_binary64
165×log1p-expm1-u_binary64
165×expm1-log1p-u_binary64
Counts
4 → 99
Calls

4 calls:

85.0ms
(*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))
85.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))))))
85.0ms
(asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
85.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
01693
132793
2433793
3528393
000
100

simplify116.0ms (0.4%)

Algorithm
egg-herbie
Rules
687×sub-neg_binary64
463×*-commutative_binary64
427×fma-neg_binary64
332×distribute-rgt-neg-in_binary64
304×distribute-lft-neg-in_binary64
Counts
243 → 175
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01544000
15203846
217533713
345583713
453263713

prune366.0ms (1.2%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1669175
Fresh101
Picked101
Done000
Total1689177
Error
0.0b
Counts
177 → 9
Alt Table
StatusErrorProgram
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.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 1 (/.f64 (+.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 (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) 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))))))
23.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.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (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) (pow.f64 (cbrt.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.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (cbrt.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))))))))
10.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) delta))))))
Compiler

Compiled 8169 to 2179 computations (73.3% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 theta) (sin.f64 delta))
0.2b
(*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))
0.4b
(-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))
2.5b
(log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta)))))

series4.3s (14.5%)

Counts
3 → 96
Calls

3 calls:

2.2s
(-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))
2.1s
(log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (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))

rewrite88.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
359×log1p-udef_binary64
199×add-sqr-sqrt_binary64
185×log1p-expm1-u_binary64
185×expm1-log1p-u_binary64
184×add-log-exp_binary64
Counts
3 → 93
Calls

3 calls:

84.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))
84.0ms
(-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))
84.0ms
(log.f64 (pow.f64 (exp.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: 0 (0.0ms)

IterNodesCost
01865
137665
2487565
3545865
000
100

simplify203.0ms (0.7%)

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
189 → 157
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01422760
14712642
215542534
342512534
449592534
549802534
649802534

prune820.0ms (2.7%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New1955200
Fresh358
Picked101
Done000
Total19910209
Error
0.0b
Counts
209 → 10
Alt Table
StatusErrorProgram
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))))))))
29.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))) 2) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.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 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))) 3) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.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 (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 (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.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.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (pow.f64 (cbrt.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.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (cbrt.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)))
5.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))))) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
10.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) delta))))))
Compiler

Compiled 9205 to 2409 computations (73.8% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.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)))))
55.1b
(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)))))

series341.0ms (1.1%)

Counts
3 → 108
Calls

3 calls:

231.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)))))
62.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)))))
48.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))

rewrite126.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
373×fma-neg_binary64
301×expm1-udef_binary64
301×log1p-udef_binary64
181×add-sqr-sqrt_binary64
168×log1p-expm1-u_binary64
Counts
3 → 79
Calls

3 calls:

123.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))
123.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)))))
123.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: 0 (0.0ms)

IterNodesCost
016111
1341106
24069106
34966106
45282106
000
100

simplify140.0ms (0.5%)

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

prune1.0s (3.4%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New3010301
Fresh099
Picked011
Done000
Total30110311
Error
0.0b
Counts
311 → 10
Alt Table
StatusErrorProgram
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))))))))
29.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))) 2) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.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 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))) 3) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.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 (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 (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.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.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (pow.f64 (cbrt.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.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (cbrt.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)))
5.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))))) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
10.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) delta))))))
Compiler

Compiled 22699 to 3542 computations (84.4% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series141.0ms (0.5%)

Counts
3 → 108
Calls

3 calls:

59.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))
49.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))
33.0ms
(fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))

rewrite98.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
392×fma-def_binary64
283×expm1-udef_binary64
283×log1p-udef_binary64
216×fma-neg_binary64
157×add-sqr-sqrt_binary64
Counts
3 → 123
Calls

3 calls:

93.0ms
(fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))
93.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))
93.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01478
129578
2378378
3523578
000
100

simplify176.0ms (0.6%)

Algorithm
egg-herbie
Rules
658×sub-neg_binary64
372×*-commutative_binary64
360×fma-neg_binary64
322×distribute-rgt-neg-in_binary64
294×distribute-lft-neg-in_binary64
Counts
231 → 196
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01423300
14803168
216203042
341813042
447753042
549903042

prune590.0ms (2%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2275232
Fresh448
Picked101
Done011
Total23210242
Error
0.0b
Counts
242 → 10
Alt Table
StatusErrorProgram
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))))))))
29.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))) 2) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.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 (pow.f64 (cos.f64 delta) 3) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))) 3)) (fma.f64 (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))) (fma.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))) (cos.f64 delta)) (pow.f64 (cos.f64 delta) 2)))))
16.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) 3) 1/3) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))
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)) (log.f64 (+.f64 1 (expm1.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))))))))
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) (expm1.f64 (log1p.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 theta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) 3)))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))) 3) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (log.f64 (pow.f64 (exp.f64 (sin.f64 phi1)) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (cos.f64 theta))))))))
10.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 phi1) delta))))))
Compiler

Compiled 10812 to 2164 computations (80% saved)

regimes2.0s (6.7%)

Accuracy

Total 0.1b remaining (69.7%)

Threshold costs 0.1b (69.7%)

Counts
177 → 1
Compiler

Compiled 50195 to 28098 computations (44% 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
02253
12953
23453
33653
43753
53753

end267.0ms (0.9%)

Compiler

Compiled 522 to 280 computations (46.4% saved)

Profiling

Loading profile data...