Details

Time bar (total: 19.0s)

analyze2.6s (14%)

Algorithm
search
Search
TrueOtherFalseIter
0%49.9%50.1%0
0%49.9%50.1%1
0%49.9%50.1%2
0%49.9%50.1%3
0%49.9%50.1%4
0%49.9%50.1%5
0%49.9%50.1%6
0%49.9%50.1%7
0%49.9%50.1%8
0.4%49.5%50.1%9
0.4%49.3%50.3%10
0.6%48.9%50.5%11
1.1%48.1%50.9%12
1.5%47.3%51.2%13
1.7%46.9%51.5%14
Compiler

Compiled 34 to 24 computations (29.4% saved)

sample378.0ms (2%)

Algorithm
intervals
Symmetry

(sort a b)

Results
158.0ms129×body2048valid
49.0ms79×body1024valid
16.0ms18×body2048overflowed
10.0ms316×pre128true
10.0ms24×body512valid
8.0ms16×body1024overflowed
3.0msbody512overflowed
2.0msbody256valid
2.0ms15×body128valid
1.0msbody4096valid
1.0msbody256overflowed
1.0ms12×body128overflowed
Compiler

Compiled 64 to 46 computations (28.1% saved)

simplify30.0ms (0.2%)

Algorithm
egg-herbie
Rules
986×times-frac_binary64
580×associate-/l*_binary64
372×fma-def_binary64
126×distribute-rgt-in_binary64
122×distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01828
14728
210828
325428
489728
5529228

prune5.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
41.3b
Counts
3 → 1
Alt Table
StatusErrorProgram
41.3b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
Compiler

Compiled 87 to 54 computations (37.9% saved)

localize43.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 eps b))
0.1b
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
0.8b
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
39.6b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))

series533.0ms (2.8%)

Counts
4 → 132
Calls

4 calls:

443.0ms
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
43.0ms
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
38.0ms
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
9.0ms
(expm1.f64 (*.f64 eps b))

rewrite23.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
20×add-cbrt-cube_binary64
20×add-exp-log_binary64
12×add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
4 → 74
Calls

4 calls:

9.0ms
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
4.0ms
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
4.0ms
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
1.0ms
(expm1.f64 (*.f64 eps b))

simplify196.0ms (1%)

Algorithm
egg-herbie
Rules
692×fma-def_binary64
622×times-frac_binary64
470×associate-/l*_binary64
249×*-commutative_binary64
163×+-commutative_binary64
Counts
206 → 213
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06128300
120217554
250597554

prune219.0ms (1.2%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New2103213
Fresh000
Picked101
Done000
Total2113214
Error
0.0b
Counts
214 → 3
Alt Table
StatusErrorProgram
29.1b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
5.5b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
41.3b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
Compiler

Compiled 10529 to 3504 computations (66.7% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
0.0b
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
7.7b
(*.f64 a (*.f64 eps eps))
9.0b
(*.f64 b (*.f64 eps eps))

series91.0ms (0.5%)

Counts
4 → 120
Calls

4 calls:

39.0ms
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
29.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
11.0ms
(*.f64 b (*.f64 eps eps))
11.0ms
(*.f64 a (*.f64 eps eps))

rewrite22.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
14×add-cbrt-cube_binary64
14×add-exp-log_binary64
14×pow1_binary64
add-sqr-sqrt_binary64
associate-*l*_binary64
Counts
4 → 62
Calls

4 calls:

11.0ms
(*.f64 a (*.f64 eps eps))
6.0ms
(*.f64 b (*.f64 eps eps))
1.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
1.0ms
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))

simplify140.0ms (0.7%)

Algorithm
egg-herbie
Rules
766×unswap-sqr_binary64
610×fma-def_binary64
470×associate-*l*_binary64
333×associate-*r*_binary64
295×associate-+r+_binary64
Counts
182 → 122
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01032698
12022339
25492269
316512269
437882269
550582269

prune154.0ms (0.8%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1211122
Fresh022
Picked011
Done000
Total1214125
Error
0b
Counts
125 → 4
Alt Table
StatusErrorProgram
31.9b
(*.f64 (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))) (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))))
29.1b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
5.5b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
41.3b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
Compiler

Compiled 3198 to 1559 computations (51.3% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 eps b))
6.0b
(*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps)))
15.2b
(/.f64 eps (expm1.f64 (*.f64 a eps)))
16.9b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))

series635.0ms (3.4%)

Counts
3 → 96
Calls

3 calls:

471.0ms
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
121.0ms
(*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps)))
43.0ms
(/.f64 eps (expm1.f64 (*.f64 a eps)))

rewrite32.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
26×add-sqr-sqrt_binary64
22×times-frac_binary64
21×*-un-lft-identity_binary64
21×add-cube-cbrt_binary64
19×add-cbrt-cube_binary64
Counts
3 → 89
Calls

3 calls:

9.0ms
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
8.0ms
(*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps)))
4.0ms
(/.f64 eps (expm1.f64 (*.f64 a eps)))

simplify230.0ms (1.2%)

Algorithm
egg-herbie
Rules
486×associate-/l*_binary64
472×times-frac_binary64
418×fma-def_binary64
283×associate-/r*_binary64
200×associate-*l/_binary64
Counts
185 → 190
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05577870
117707162
249797162

prune283.0ms (1.5%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New2170217
Fresh022
Picked011
Done011
Total2174221
Error
0b
Counts
221 → 4
Alt Table
StatusErrorProgram
31.9b
(*.f64 (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))) (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))))
29.1b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
5.5b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
41.3b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
Compiler

Compiled 9881 to 2987 computations (69.8% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))))
0.3b
(*.f64 (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))) (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))))
7.7b
(*.f64 a (*.f64 eps eps))
9.0b
(*.f64 b (*.f64 eps eps))

series265.0ms (1.4%)

Counts
2 → 48
Calls

2 calls:

210.0ms
(sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))))
54.0ms
(*.f64 (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))) (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))))

rewrite30.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
28×add-sqr-sqrt_binary64
21×sqrt-prod_binary64
18×pow1_binary64
11×*-un-lft-identity_binary64
11×add-cube-cbrt_binary64
Counts
2 → 68
Calls

2 calls:

9.0ms
(*.f64 (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))) (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))))
2.0ms
(sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))))

simplify199.0ms (1%)

Algorithm
egg-herbie
Rules
541×times-frac_binary64
483×cancel-sign-sub-inv_binary64
327×distribute-rgt-in_binary64
201×associate-*l*_binary64
196×associate-*r*_binary64
Counts
116 → 130
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02165435
15854171
222483868
349863868

prune647.0ms (3.4%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New3050305
Fresh011
Picked011
Done022
Total3054309
Error
0b
Counts
309 → 4
Alt Table
StatusErrorProgram
31.9b
(*.f64 (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))) (sqrt.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))))
29.1b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
5.5b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
41.3b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
Compiler

Compiled 17555 to 9383 computations (46.6% saved)

regimes1.0s (5.4%)

Accuracy

Total 0.3b remaining (91.1%)

Threshold costs 0.3b (91.1%)

Counts
131 → 3
Compiler

Compiled 11686 to 7624 computations (34.8% saved)

bsearch10.0ms (0.1%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

simplify7.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042155
161155
264155
362155

end15.0ms (0.1%)

Compiler

Compiled 315 to 177 computations (43.8% saved)

sample11.0s (58.2%)

Algorithm
intervals
Results
6.1s4106×body2048valid
2.0s2425×body1024valid
407.0ms626×body1024overflowed
406.0ms9796×pre128true
380.0ms381×body2048overflowed
343.0ms693×body512valid
134.0ms311×body512overflowed
77.0ms250×body256valid
75.0ms515×body128valid
51.0ms316×body128overflowed
46.0ms159×body256overflowed
25.0ms11×body4096valid
4.0msbody2048invalid
Compiler

Compiled 258 to 156 computations (39.5% saved)

Profiling

Loading profile data...