Details

Time bar (total: 23.1s)

analyze4.9s (21.4%)

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.8s (46.6%)

Results
8.0s4106×body1024valid
1.5s1348×body512valid
821.0ms2230×body128valid
401.0ms557×body256valid
73.0ms15×body2048valid
Compiler

Compiled 78 to 48 computations (38.5% saved)

preprocess65.0ms (0.3%)

Algorithm
egg-herbie
Rules
970×fma-def_binary64
456×distribute-rgt-neg-out_binary64
282×distribute-rgt-in_binary64
225×cancel-sign-sub-inv_binary64
210×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0131583
1290583
2508583
3715583
4891583
51451583
62671583
73583583
055
Stop Event
saturated
node limit
Compiler

Compiled 38 to 23 computations (39.5% saved)

simplify49.0ms (0.2%)

Algorithm
egg-herbie
Rules
571×fma-def_binary64
244×fma-neg_binary64
103×unsub-neg_binary64
88×distribute-rgt-in_binary64
84×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02353
14153
27053
39453
411453
515253
622353
729453
842353
955953
1063353
1176253
1289753
13109153
14133253
15165053
16181753
17199153
18199353
19199953
20200453
Stop Event
saturated
Counts
1 → 2

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.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 (+.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 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
Compiler

Compiled 220 to 124 computations (43.6% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series117.0ms (0.5%)

Counts
4 → 144
Calls

36 calls:

9.0ms
(fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
theta
inf
8.0ms
(fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
theta
-inf
7.0ms
(fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
phi1
-inf
7.0ms
(fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
phi1
inf
7.0ms
(fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
delta
-inf

rewrite84.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
879×prod-diff_binary64
193×add-sqr-sqrt_binary64
177×log1p-expm1-u_binary64
177×expm1-log1p-u_binary64
175×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01988
137486
2474386
Stop Event
node limit
Counts
4 → 101

simplify76.0ms (0.3%)

Algorithm
egg-herbie
Rules
383×fma-neg_binary64
327×distribute-rgt-neg-in_binary64
299×distribute-lft-neg-in_binary64
290×associate-*r*_binary64
220×associate--l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01983774
16433732
222103535
Stop Event
node limit
Counts
245 → 177

prune479.0ms (2.1%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1698177
Fresh101
Picked101
Done000
Total1718179
Error
0.0b
Counts
179 → 8
Alt Table
StatusErrorProgram
13.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
4.7b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) 3)) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
8.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (pow.f64 (cbrt.f64 (fma.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))) (sin.f64 phi1) (cos.f64 delta))) 3)))
28.1b
(+.f64 lambda1 (atan2.f64 (pow.f64 (sqrt.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta)))) 2) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.3b
(+.f64 lambda1 (atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta)))) 3) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
20.5b
(+.f64 lambda1 (atan2.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) 3) 1/3) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (+.f64 (fma.f64 (PI.f64) 1/2 (neg.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (fma.f64 (neg.f64 (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
Compiler

Compiled 8717 to 2105 computations (75.9% saved)

localize32.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)
0.4b
(*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)))
0.6b
(fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
3.0b
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))

series611.0ms (2.6%)

Counts
4 → 132
Calls

33 calls:

53.0ms
(fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
theta
0
47.0ms
(fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
delta
inf
41.0ms
(fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
theta
-inf
40.0ms
(fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
phi1
-inf
39.0ms
(fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
delta
-inf

rewrite47.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
242×add-sqr-sqrt_binary64
233×log1p-expm1-u_binary64
233×expm1-log1p-u_binary64
230×add-cbrt-cube_binary64
224×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022145
1486145
Stop Event
node limit
Counts
4 → 65

simplify115.0ms (0.5%)

Algorithm
egg-herbie
Rules
719×associate-*r*_binary64
465×associate-*l*_binary64
308×fma-def_binary64
270×times-frac_binary64
231×associate-/l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03849187
113229059
Stop Event
node limit
Counts
197 → 151

prune417.0ms (1.8%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1465151
Fresh347
Picked101
Done000
Total1509159
Error
0.0b
Counts
159 → 9
Alt Table
StatusErrorProgram
13.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
4.7b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) 3)) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (expm1.f64 (log1p.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (log1p.f64 (expm1.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.3b
(+.f64 lambda1 (atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta)))) 3) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
17.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (pow.f64 (sqrt.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) 2)))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (pow.f64 (cbrt.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) 3)))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (+.f64 (fma.f64 (PI.f64) 1/2 (neg.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (fma.f64 (neg.f64 (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
Compiler

Compiled 13208 to 4519 computations (65.8% saved)

localize33.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2)
0.5b
(expm1.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta)))
0.6b
(fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
3.0b
(/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)))))

series1.2s (5%)

Counts
4 → 144
Calls

36 calls:

240.0ms
(expm1.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta)))
theta
0
60.0ms
(fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
theta
0
54.0ms
(expm1.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta)))
delta
-inf
53.0ms
(expm1.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta)))
delta
inf
49.0ms
(fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
phi1
-inf

rewrite55.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
232×add-sqr-sqrt_binary64
223×log1p-expm1-u_binary64
223×expm1-log1p-u_binary64
219×add-cbrt-cube_binary64
215×add-cube-cbrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022200
1471190
Stop Event
node limit
Counts
4 → 74

simplify216.0ms (0.9%)

Algorithm
egg-herbie
Rules
655×times-frac_binary64
571×fma-def_binary64
370×*-commutative_binary64
250×associate-*r*_binary64
156×+-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
073720131
1257820047
Stop Event
node limit
Counts
218 → 169

prune657.0ms (2.8%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1690169
Fresh088
Picked011
Done000
Total1699178
Error
0.0b
Counts
178 → 9
Alt Table
StatusErrorProgram
13.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
4.7b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) 3)) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (expm1.f64 (log1p.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (log1p.f64 (expm1.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.3b
(+.f64 lambda1 (atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta)))) 3) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
17.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (pow.f64 (sqrt.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) 2)))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (pow.f64 (cbrt.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) 3)))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (+.f64 (fma.f64 (PI.f64) 1/2 (neg.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (fma.f64 (neg.f64 (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
Compiler

Compiled 24176 to 8985 computations (62.8% saved)

localize33.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)
0.4b
(pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2)
0.6b
(fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))
3.0b
(/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)))))

prune489.0ms (2.1%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1570157
Fresh077
Picked011
Done011
Total1579166
Error
0.0b
Counts
166 → 9
Alt Table
StatusErrorProgram
13.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (sin.f64 phi1) (*.f64 delta (cos.f64 theta)))))))
4.7b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta))) 3)) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (expm1.f64 (log1p.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (log1p.f64 (expm1.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (asin.f64 (/.f64 (-.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2))) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (-.f64 (*.f64 (*.f64 (cos.f64 theta) (cos.f64 phi1)) (sin.f64 delta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
0.3b
(+.f64 lambda1 (atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 phi1) (*.f64 (sin.f64 delta) (sin.f64 theta)))) 3) (fma.f64 (sin.f64 (asin.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
17.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (pow.f64 (sqrt.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) 2)))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (pow.f64 (cbrt.f64 (fma.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta))) 2) (pow.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1)) 2)) (fma.f64 (cos.f64 theta) (*.f64 (cos.f64 phi1) (sin.f64 delta)) (neg.f64 (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))) 3)))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (sin.f64 theta))) (fma.f64 (sin.f64 (+.f64 (fma.f64 (PI.f64) 1/2 (neg.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (fma.f64 (neg.f64 (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (sqrt.f64 (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))) (acos.f64 (fma.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))))) (neg.f64 (sin.f64 phi1)) (cos.f64 delta))))
Compiler

Compiled 13052 to 4526 computations (65.3% saved)

regimes2.3s (10.1%)

Accuracy

Total 0.1b remaining (59.2%)

Threshold costs 0.1b (59.2%)

Counts
197 → 1
Compiler

Compiled 61969 to 36505 computations (41.1% 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
13153
23353
33453
Stop Event
saturated

end302.0ms (1.3%)

Stop Event
fuel
Compiler

Compiled 560 to 297 computations (47% saved)

Profiling

Loading profile data...