Details

Time bar (total: 14.6s)

analyze3.4s (23.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)

sample238.0ms (1.6%)

Algorithm
intervals
Results
129.0ms132×body2048valid
44.0ms89×body1024valid
7.0ms301×pre128true
7.0ms10×body2048overflowed
6.0ms12×body1024overflowed
4.0ms13×body512valid
3.0msbody512overflowed
2.0msbody256valid
1.0ms14×body128valid
1.0msbody256overflowed
1.0msbody128overflowed
Compiler

Compiled 64 to 46 computations (28.1% saved)

simplify40.0ms (0.3%)

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 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01828
14728
210828
325428
489728
5529228

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New011
Fresh101
Picked000
Done000
Total112
Error
41.8b
Counts
2 → 1
Alt Table
StatusErrorProgram
41.8b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
Compiler

Compiled 63 to 39 computations (38.1% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(*.f64 eps (+.f64 a b))
0.1b
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
0.3b
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
39.9b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))

rewrite132.0ms (0.9%)

Algorithm
rewrite-expression-head
Error
28.7b
Rules
22×add-cbrt-cube_binary64
22×add-exp-log_binary64
16×add-sqr-sqrt_binary64
12×*-un-lft-identity_binary64
10×associate-*r*_binary64
Counts
4 → 88
Calls

4 calls:

5.0ms
(*.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 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
3.0ms
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
Compiler

Compiled 2169 to 330 computations (84.8% saved)

series370.0ms (2.5%)

Error
0.0b
Counts
4 → 55
Calls

4 calls:

214.0ms
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
60.0ms
(*.f64 eps (+.f64 a b))
44.0ms
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
31.0ms
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
Compiler

Compiled 5358 to 2750 computations (48.7% saved)

simplify111.0ms (0.8%)

Algorithm
egg-herbie
Rules
354×associate-*r*_binary64
337×associate-*l*_binary64
330×times-frac_binary64
298×fma-neg_binary64
250×associate-/l*_binary64
Counts
143 → 125
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03303899
19753360
243313360
350443360

prune49.0ms (0.3%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1214125
Fresh000
Picked101
Done000
Total1224126
Error
0.0b
Counts
126 → 4
Alt Table
StatusErrorProgram
42.1b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 eps (expm1.f64 (*.f64 (+.f64 a b) eps))) (*.f64 (expm1.f64 (*.f64 b eps)) (expm1.f64 (*.f64 a eps))))) (cbrt.f64 (/.f64 (*.f64 eps (expm1.f64 (*.f64 (+.f64 a b) eps))) (*.f64 (expm1.f64 (*.f64 b eps)) (expm1.f64 (*.f64 a eps)))))) (cbrt.f64 (/.f64 (*.f64 eps (expm1.f64 (*.f64 (+.f64 a b) eps))) (*.f64 (expm1.f64 (*.f64 b eps)) (expm1.f64 (*.f64 a eps))))))
28.8b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
5.3b
(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.8b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 b eps)) (expm1.f64 (*.f64 a eps))) (*.f64 eps (expm1.f64 (*.f64 (+.f64 a b) eps)))))
Compiler

Compiled 2699 to 681 computations (74.8% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

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))
6.3b
(*.f64 a (*.f64 eps eps))
6.5b
(*.f64 b (*.f64 eps eps))

rewrite53.0ms (0.4%)

Algorithm
rewrite-expression-head
Error
0.0b
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:

5.0ms
(*.f64 b (*.f64 eps eps))
4.0ms
(*.f64 a (*.f64 eps eps))
0.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
0.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))))
Compiler

Compiled 1574 to 716 computations (54.5% saved)

series122.0ms (0.8%)

Error
0.0b
Counts
4 → 48
Calls

4 calls:

54.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))))
30.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
13.0ms
(*.f64 b (*.f64 eps eps))
12.0ms
(*.f64 a (*.f64 eps eps))
Compiler

Compiled 1960 to 1426 computations (27.2% saved)

simplify85.0ms (0.6%)

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
110 → 95
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01031702
12021418
25491378
316511378
437881378
550581378

prune47.0ms (0.3%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New94195
Fresh123
Picked101
Done000
Total96399
Error
0.0b
Counts
99 → 3
Alt Table
StatusErrorProgram
28.8b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
41.8b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 b eps)) (expm1.f64 (*.f64 a eps))) (*.f64 eps (expm1.f64 (*.f64 (+.f64 a b) eps)))))
2.7b
(+.f64 (/.f64 1 a) (/.f64 1 b))
Compiler

Compiled 1361 to 683 computations (49.8% saved)

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

0.0b
(+.f64 (/.f64 1 a) (/.f64 1 b))

rewrite29.0ms (0.2%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
20×*-un-lft-identity_binary64
15×times-frac_binary64
13×fma-def_binary64
10×add-sqr-sqrt_binary64
10×add-cube-cbrt_binary64
Counts
1 → 34
Calls

1 calls:

12.0ms
(+.f64 (/.f64 1 a) (/.f64 1 b))
Compiler

Compiled 421 to 314 computations (25.4% saved)

series18.0ms (0.1%)

Error
0.0b
Counts
1 → 12
Calls

1 calls:

17.0ms
(+.f64 (/.f64 1 a) (/.f64 1 b))
Compiler

Compiled 172 to 138 computations (19.8% saved)

simplify136.0ms (0.9%)

Algorithm
egg-herbie
Rules
450×fma-neg_binary64
421×div-sub_binary64
357×fma-def_binary64
329×sub-neg_binary64
281×distribute-rgt-in_binary64
Counts
46 → 13
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
037392
1106362
2241361
3565361
41313361
52794361
64202361
74546361
84845361
94973361
104870361

prune7.0ms (0%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New13013
Fresh022
Picked011
Done000
Total13316
Error
0.0b
Counts
16 → 3
Alt Table
StatusErrorProgram
28.8b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
41.8b
(/.f64 1 (/.f64 (*.f64 (expm1.f64 (*.f64 b eps)) (expm1.f64 (*.f64 a eps))) (*.f64 eps (expm1.f64 (*.f64 (+.f64 a b) eps)))))
2.7b
(+.f64 (/.f64 1 a) (/.f64 1 b))
Compiler

Compiled 207 to 146 computations (29.5% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(*.f64 (+.f64 a b) eps)
4.8b
(*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps)))
14.5b
(/.f64 eps (expm1.f64 (*.f64 a eps)))
16.6b
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))

rewrite62.0ms (0.4%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
31×add-sqr-sqrt_binary64
26×*-un-lft-identity_binary64
24×add-cube-cbrt_binary64
22×times-frac_binary64
22×add-cbrt-cube_binary64
Counts
4 → 112
Calls

4 calls:

5.0ms
(*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps)))
5.0ms
(*.f64 (+.f64 a b) eps)
5.0ms
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
4.0ms
(/.f64 eps (expm1.f64 (*.f64 a eps)))
Compiler

Compiled 2898 to 458 computations (84.2% saved)

series279.0ms (1.9%)

Error
0b
Counts
4 → 51
Calls

4 calls:

170.0ms
(/.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (expm1.f64 (*.f64 eps b)))
48.0ms
(*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps)))
26.0ms
(/.f64 eps (expm1.f64 (*.f64 a eps)))
19.0ms
(*.f64 (+.f64 a b) eps)
Compiler

Compiled 4506 to 2301 computations (48.9% saved)

simplify144.0ms (1%)

Algorithm
egg-herbie
Rules
812×fma-def_binary64
248×associate-/l*_binary64
184×times-frac_binary64
180×associate-*l*_binary64
176×associate-*r*_binary64
Counts
163 → 113
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03254230
18993705
235073679
349753679
450013679

prune37.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1112113
Fresh101
Picked101
Done011
Total1133116
Error
0b
Counts
116 → 3
Alt Table
StatusErrorProgram
29.7b
(*.f64 (*.f64 (/.f64 eps (expm1.f64 (*.f64 a eps))) (expm1.f64 (*.f64 (+.f64 a b) eps))) (/.f64 1 (expm1.f64 (*.f64 b eps))))
20.1b
(/.f64 (fma.f64 1/2 (+.f64 eps (*.f64 eps (exp.f64 (*.f64 b eps)))) (/.f64 (expm1.f64 (*.f64 b eps)) a)) (expm1.f64 (*.f64 eps b)))
2.7b
(+.f64 (/.f64 1 a) (/.f64 1 b))
Compiler

Compiled 2110 to 498 computations (76.4% saved)

regimes546.0ms (3.8%)

Accuracy

Total 0.2b remaining (91.6%)

Threshold costs 0.2b (91.6%)

Compiler

Compiled 8238 to 4432 computations (46.2% saved)

bsearch4.0ms (0%)

Compiler

Compiled 27 to 19 computations (29.6% saved)

simplify5.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
035124
152124
255124
353124

end9.0ms (0.1%)

Remove

(sort a b)

Compiler

Compiled 249 to 138 computations (44.6% saved)

sample8.6s (59.3%)

Algorithm
intervals
Results
4.8s4065×body2048valid
1.6s2389×body1024valid
302.0ms396×body2048overflowed
287.0ms716×body512valid
281.0ms9683×pre128true
269.0ms552×body1024overflowed
112.0ms291×body512overflowed
67.0ms552×body128valid
62.0ms260×body256valid
50.0ms157×body256overflowed
35.0ms285×body128overflowed
33.0ms18×body4096valid
3.0msbody2048invalid
Compiler

Compiled 177 to 110 computations (37.9% saved)

Profiling

Loading profile data...