Details

Time bar (total: 26.1s)

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

sample10.9s (41.7%)

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 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Results
7.8s3998×body1024valid
1.6s1476×body512valid
865.0ms2199×body128valid
407.0ms570×body256valid
60.0ms13×body2048valid
Compiler

Compiled 192 to 117 computations (39.1% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series130.0ms (0.5%)

Counts
4 → 132
Calls

4 calls:

64.0ms
(-.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)))))))
47.0ms
(*.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))))))
9.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
9.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))

rewrite97.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
464×prod-diff_binary64
216×add-sqr-sqrt_binary64
204×log1p-expm1-u_binary64
204×expm1-log1p-u_binary64
199×add-log-exp_binary64
Counts
4 → 115
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01988
140288
2487088
3574788
000
100

prune370.0ms (1.4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2416247
Fresh000
Picked011
Done000
Total2417248
Error
0.0b
Counts
248 → 7
Alt Table
StatusErrorProgram
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) (*.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)))))))))
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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
0.2b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3))))
0.1b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3))))
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)))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Compiler

Compiled 11506 to 1928 computations (83.2% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series348.0ms (1.3%)

Counts
4 → 132
Calls

4 calls:

225.0ms
(fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))
60.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))
53.0ms
(*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
9.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))

rewrite98.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
337×log1p-udef_binary64
201×add-sqr-sqrt_binary64
186×log1p-expm1-u_binary64
186×expm1-log1p-u_binary64
183×add-cbrt-cube_binary64
Counts
4 → 100
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
018119
1380114
24576114
35063114
000
100

prune673.0ms (2.6%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2862288
Fresh055
Picked011
Done011
Total2869295
Error
0.0b
Counts
295 → 9
Alt Table
StatusErrorProgram
10.6b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (neg.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
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) (*.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)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (/.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (+.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (cos.f64 delta)))) (-.f64 (pow.f64 (cos.f64 delta) 3) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 3)))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
0.2b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3))))
0.1b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3))))
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)))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Compiler

Compiled 19960 to 2215 computations (88.9% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series1.0s (4%)

Counts
4 → 112
Calls

4 calls:

799.0ms
(*.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))
152.0ms
(-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2))
91.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)
5.0ms
(pow.f64 (cos.f64 delta) 2)

rewrite105.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
350×prod-diff_binary64
217×add-sqr-sqrt_binary64
209×log1p-expm1-u_binary64
209×expm1-log1p-u_binary64
202×add-cbrt-cube_binary64
Counts
4 → 120
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
021142
1445103
24626103
35306103
000
100

prune654.0ms (2.5%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2275232
Fresh246
Picked101
Done112
Total23110241
Error
0.0b
Counts
241 → 10
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (/.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (+.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (cos.f64 delta)))) (-.f64 (pow.f64 (cos.f64 delta) 3) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 3)))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
0.2b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
10.6b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (neg.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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) 2) (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 4)) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2))) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (/.f64 (pow.f64 (cos.f64 delta) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))) (/.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))))))
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)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (+.f64 1/2 (*.f64 1/2 (cos.f64 (*.f64 2 delta)))) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (+.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (fma.f64 (neg.f64 (pow.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) 2)) (pow.f64 (sin.f64 phi1) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2))) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (log.f64 (exp.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)))) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Compiler

Compiled 22090 to 7205 computations (67.4% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series1.6s (6.3%)

Counts
4 → 112
Calls

4 calls:

1.2s
(-.f64 (/.f64 (pow.f64 (cos.f64 delta) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))) (/.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))))
402.0ms
(/.f64 (pow.f64 (cos.f64 delta) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta)))
86.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)
3.0ms
(pow.f64 (cos.f64 delta) 2)

rewrite357.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
418×prod-diff_binary64
244×egg-rr
215×add-sqr-sqrt_binary64
205×log1p-expm1-u_binary64
205×expm1-log1p-u_binary64
Counts
4 → 244
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
020140
1430140
24771140
35615140
000
100

prune2.0s (7.6%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New3533356
Fresh358
Picked101
Done011
Total3579366
Error
0.0b
Counts
366 → 9
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cbrt.f64 (pow.f64 (/.f64 (pow.f64 (cos.f64 delta) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))) 3)) (/.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))))))
0.2b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (+.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (fma.f64 (neg.f64 (pow.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) 2)) (pow.f64 (sin.f64 phi1) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2))) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (cos.f64 delta) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))) 3) (pow.f64 (/.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))) 3)) (+.f64 (/.f64 (pow.f64 (cos.f64 delta) 4) (pow.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta)) 2)) (+.f64 (/.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 4) (pow.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta)) 2)) (/.f64 (*.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (pow.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta)) 2)))))))
10.6b
(+.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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (fma.f64 (neg.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) (sin.f64 phi1) (neg.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3))))
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)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (+.f64 1/2 (*.f64 1/2 (cos.f64 (*.f64 2 delta)))) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (*.f64 (pow.f64 (cos.f64 delta) 2) (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta))) (*.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta)) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2))) (pow.f64 (fma.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))) (cos.f64 delta)) 2))))
Compiler

Compiled 58887 to 11517 computations (80.4% saved)

regimes2.4s (9%)

Accuracy

Total 0.1b remaining (47.4%)

Threshold costs 0.1b (47.4%)

Counts
199 → 1
Compiler

Compiled 91411 to 40012 computations (56.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
02253
13053
23553
33753
43853
53853

end300.0ms (1.1%)

Compiler

Compiled 793 to 318 computations (59.9% saved)

Profiling

Loading profile data...