Details

Time bar (total: 11.9s)

analyze2.4s (20.1%)

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)

sample263.0ms (2.2%)

Algorithm
intervals
Symmetry

(sort a b)

Results
110.0ms130×body2048valid
34.0ms74×body1024valid
13.0ms19×body1024overflowed
7.0ms24×body512valid
7.0ms303×pre128true
5.0ms21×body128valid
3.0msbody2048overflowed
2.0msbody512overflowed
2.0msbody4096valid
1.0msbody256overflowed
1.0msbody256valid
0.0msbody128overflowed
Compiler

Compiled 64 to 46 computations (28.1% saved)

simplify22.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

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
42.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
42.2b
(/.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)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series369.0ms (3.1%)

Counts
4 → 144
Calls

4 calls:

295.0ms
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
31.0ms
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
27.0ms
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
15.0ms
(expm1.f64 (*.f64 eps (+.f64 a b)))

rewrite16.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:

4.0ms
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
4.0ms
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
3.0ms
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
0.0ms
(expm1.f64 (*.f64 eps (+.f64 a b)))

simplify136.0ms (1.1%)

Algorithm
egg-herbie
Rules
828×fma-def_binary64
622×times-frac_binary64
470×associate-/l*_binary64
249×*-commutative_binary64
191×+-commutative_binary64
Counts
218 → 229
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06468872
121668105
253258105

prune196.0ms (1.7%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New2263229
Fresh000
Picked101
Done000
Total2273230
Error
0.0b
Counts
230 → 3
Alt Table
StatusErrorProgram
42.1b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
7.6b
(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.4b
(/.f64 eps (/.f64 (expm1.f64 (*.f64 a eps)) (/.f64 (expm1.f64 (*.f64 (+.f64 a b) eps)) (expm1.f64 (*.f64 b eps)))))
Compiler

Compiled 11430 to 3843 computations (66.4% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))
0.1b
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
5.9b
(*.f64 a (*.f64 eps eps))
7.1b
(*.f64 b (*.f64 eps eps))

series112.0ms (0.9%)

Counts
4 → 120
Calls

4 calls:

66.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
29.0ms
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))
8.0ms
(*.f64 b (*.f64 eps eps))
8.0ms
(*.f64 a (*.f64 eps eps))

rewrite19.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
16×*-un-lft-identity_binary64
15×add-sqr-sqrt_binary64
14×add-cbrt-cube_binary64
14×add-exp-log_binary64
14×pow1_binary64
Counts
4 → 81
Calls

4 calls:

6.0ms
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))
5.0ms
(*.f64 a (*.f64 eps eps))
4.0ms
(*.f64 b (*.f64 eps eps))
0.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))

simplify144.0ms (1.2%)

Algorithm
egg-herbie
Rules
562×associate-+l+_binary64
523×associate-*l*_binary64
384×associate-*r*_binary64
262×cancel-sign-sub-inv_binary64
220×unswap-sqr_binary64
Counts
201 → 131
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01052505
12362362
26562362
322572360
445242360
550012360

prune131.0ms (1.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1292131
Fresh022
Picked011
Done000
Total1295134
Error
0.0b
Counts
134 → 5
Alt Table
StatusErrorProgram
42.1b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
7.6b
(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.4b
(/.f64 eps (/.f64 (expm1.f64 (*.f64 a eps)) (/.f64 (expm1.f64 (*.f64 (+.f64 a b) eps)) (expm1.f64 (*.f64 b eps)))))
46.5b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (/.f64 (+.f64 (pow.f64 (/.f64 1 b) 3) (pow.f64 (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)) 3)) (+.f64 (*.f64 (/.f64 1 b) (/.f64 1 b)) (-.f64 (*.f64 (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))) (*.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))))))
8.1b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (fma.f64 (*.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 (/.f64 1 b))) (cbrt.f64 (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
Compiler

Compiled 3845 to 1848 computations (51.9% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 (/.f64 1 b)))
0.6b
(cbrt.f64 (/.f64 1 b))
5.9b
(*.f64 a (*.f64 eps eps))
7.1b
(*.f64 b (*.f64 eps eps))

series76.0ms (0.6%)

Counts
2 → 24
Calls

2 calls:

38.0ms
(cbrt.f64 (/.f64 1 b))
37.0ms
(*.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 (/.f64 1 b)))

rewrite26.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
93×cbrt-prod_binary64
81×add-sqr-sqrt_binary64
61×times-frac_binary64
51×*-un-lft-identity_binary64
41×add-cube-cbrt_binary64
Counts
2 → 113
Calls

2 calls:

11.0ms
(*.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 (/.f64 1 b)))
2.0ms
(cbrt.f64 (/.f64 1 b))

simplify110.0ms (0.9%)

Algorithm
egg-herbie
Rules
468×distribute-rgt-in_binary64
444×log-div_binary64
414×unswap-sqr_binary64
331×fma-def_binary64
287×log-prod_binary64
Counts
137 → 146
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0832116
11282012
23531946
38201926
426361770
545101770
650231770

prune295.0ms (2.5%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New2682270
Fresh123
Picked011
Done011
Total2696275
Error
0.0b
Counts
275 → 6
Alt Table
StatusErrorProgram
42.1b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
7.6b
(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))))
8.1b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (fma.f64 (/.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 b)) (cbrt.f64 (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
8.1b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (fma.f64 (/.f64 1 (*.f64 (cbrt.f64 b) (cbrt.f64 b))) (cbrt.f64 (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
29.4b
(/.f64 eps (/.f64 (expm1.f64 (*.f64 a eps)) (/.f64 (expm1.f64 (*.f64 (+.f64 a b) eps)) (expm1.f64 (*.f64 b eps)))))
8.1b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (fma.f64 (*.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 (/.f64 1 b))) (cbrt.f64 (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
Compiler

Compiled 10372 to 6000 computations (42.2% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 b)
0.6b
(cbrt.f64 (/.f64 1 b))
5.9b
(*.f64 a (*.f64 eps eps))
7.1b
(*.f64 b (*.f64 eps eps))

series31.0ms (0.3%)

Counts
1 → 12
Calls

1 calls:

30.0ms
(cbrt.f64 b)

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
cbrt-prod_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
1 → 13
Calls

1 calls:

1.0ms
(cbrt.f64 b)

simplify58.0ms (0.5%)

Algorithm
egg-herbie
Rules
610×associate-/l/_binary64
374×log-prod_binary64
316×distribute-rgt-neg-in_binary64
314×distribute-lft-neg-in_binary64
287×*-commutative_binary64
Counts
25 → 18
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
024141
138137
286137
3208137
4626133
51904133
62565133
73552133
84861133

prune154.0ms (1.3%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1420142
Fresh033
Picked011
Done022
Total1426148
Error
0.0b
Counts
148 → 6
Alt Table
StatusErrorProgram
42.1b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))))
7.6b
(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))))
8.1b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (fma.f64 (/.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 b)) (cbrt.f64 (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
8.1b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (fma.f64 (/.f64 1 (*.f64 (cbrt.f64 b) (cbrt.f64 b))) (cbrt.f64 (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
29.4b
(/.f64 eps (/.f64 (expm1.f64 (*.f64 a eps)) (/.f64 (expm1.f64 (*.f64 (+.f64 a b) eps)) (expm1.f64 (*.f64 b eps)))))
8.1b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (fma.f64 (*.f64 (cbrt.f64 (/.f64 1 b)) (cbrt.f64 (/.f64 1 b))) (cbrt.f64 (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
Compiler

Compiled 5010 to 2579 computations (48.5% saved)

regimes346.0ms (2.9%)

Accuracy

Total 1.2b remaining (98.3%)

Threshold costs 0b (0%)

Counts
49 → 3
Compiler

Compiled 5134 to 3304 computations (35.6% saved)

bsearch2.0ms (0%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
041134
158134
261134
359134

end9.0ms (0.1%)

Compiler

Compiled 270 to 150 computations (44.4% saved)

sample6.9s (58%)

Algorithm
intervals
Results
3.6s4070×body2048valid
1.1s2408×body1024valid
275.0ms776×body512valid
257.0ms334×body2048overflowed
218.0ms9588×pre128true
206.0ms558×body1024overflowed
77.0ms280×body512overflowed
47.0ms242×body256valid
43.0ms494×body128valid
25.0ms281×body128overflowed
22.0ms134×body256overflowed
14.0ms10×body4096valid
1.0msbody2048invalid
Compiler

Compiled 293 to 184 computations (37.2% saved)

Profiling

Loading profile data...