Details

Time bar (total: 13.2s)

analyze2.7s (20.6%)

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)

sample8.5s (64.7%)

Symmetry

(sort a b)

Results
4.8s4101×body2048valid
1.9s2516×body1024valid
435.0ms632×body1024invalid
435.0ms410×body2048invalid
371.0ms804×body512valid
127.0ms284×body512invalid
95.0ms573×body128valid
77.0ms246×body256valid
51.0ms150×body256invalid
50.0ms314×body128invalid
25.0ms16×body4096valid
Compiler

Compiled 95 to 67 computations (29.5% saved)

simplify26.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
39.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
39.0b
(/.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)

localize12.0ms (0.1%)

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))))
37.3b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))

series435.0ms (3.3%)

Counts
4 → 144
Calls

4 calls:

363.0ms
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
30.0ms
(*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))
28.0ms
(*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))
14.0ms
(expm1.f64 (*.f64 eps (+.f64 a b)))

rewrite87.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
104×egg-rr
Counts
4 → 104
Calls

2 calls:

84.0ms
((/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (expm1.f64 (*.f64 eps (+.f64 a b))))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01463
129363
2411363
3590863
000
100

simplify140.0ms (1.1%)

Algorithm
egg-herbie
Rules
828×fma-def_binary64
410×times-frac_binary64
350×associate-/l*_binary64
238×associate-/r*_binary64
221×*-commutative_binary64
Counts
248 → 208
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
05567020
119786629
249326625
352156625

prune156.0ms (1.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New2044208
Fresh000
Picked011
Done000
Total2045209
Error
0.0b
Counts
209 → 5
Alt Table
StatusErrorProgram
46.0b
(cbrt.f64 (pow.f64 (/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))) 3))
38.9b
(pow.f64 (/.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))) (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b))))) -1)
6.7b
(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))))
39.0b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
17.1b
(/.f64 (+.f64 a b) (*.f64 a b))
Compiler

Compiled 10734 to 3866 computations (64% saved)

localize11.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))
5.7b
(*.f64 a (*.f64 eps eps))
8.2b
(*.f64 b (*.f64 eps eps))

series69.0ms (0.5%)

Counts
4 → 120
Calls

4 calls:

30.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))))
21.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
9.0ms
(*.f64 b (*.f64 eps eps))
8.0ms
(*.f64 a (*.f64 eps eps))

rewrite65.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
78×egg-rr
Counts
4 → 78
Calls

2 calls:

63.0ms
((*.f64 b (*.f64 eps eps)) (*.f64 a (*.f64 eps eps)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)) (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.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01458
129858
2355758
3492558
000
100

simplify131.0ms (1%)

Algorithm
egg-herbie
Rules
731×distribute-rgt-out_binary64
626×associate-*l*_binary64
552×fma-def_binary64
484×*-commutative_binary64
362×distribute-rgt-in_binary64
Counts
198 → 104
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0261742
1651511
21401461
32951461
46161461
515291461
627681461
737901461
849971461
949961461
1049471461

prune73.0ms (0.6%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1031104
Fresh123
Picked101
Done011
Total1054109
Error
0.0b
Counts
109 → 4
Alt Table
StatusErrorProgram
46.0b
(cbrt.f64 (pow.f64 (/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))) 3))
39.0b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
17.1b
(/.f64 (+.f64 a b) (*.f64 a b))
3.7b
(+.f64 (/.f64 1 b) (/.f64 1 a))
Compiler

Compiled 2597 to 1339 computations (48.4% saved)

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

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

series5.0ms (0%)

Counts
1 → 6
Calls

1 calls:

5.0ms
(+.f64 (/.f64 1 b) (/.f64 1 a))

rewrite45.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
46×egg-rr
Counts
1 → 46
Calls

2 calls:

45.0ms
((+.f64 (/.f64 1 b) (/.f64 1 a)))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
115610
2200210
3619510
000
100

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Counts
52 → 48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0624
1824
2724

prune27.0ms (0.2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New48048
Fresh022
Picked011
Done011
Total48452
Error
0.0b
Counts
52 → 4
Alt Table
StatusErrorProgram
46.0b
(cbrt.f64 (pow.f64 (/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))) 3))
39.0b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
17.1b
(/.f64 (+.f64 a b) (*.f64 a b))
3.7b
(+.f64 (/.f64 1 b) (/.f64 1 a))
Compiler

Compiled 699 to 477 computations (31.8% saved)

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
16.1b
(/.f64 (+.f64 a b) (*.f64 a b))

series7.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

7.0ms
(/.f64 (+.f64 a b) (*.f64 a b))

rewrite48.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
40×egg-rr
Counts
1 → 40
Calls

2 calls:

47.0ms
((/.f64 (+.f64 a b) (*.f64 a b)))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
113610
2201610
3618010
000
100

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
1-exp_binary64
Counts
64 → 44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07204
110204
29204

prune17.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New44044
Fresh011
Picked011
Done022
Total44448
Error
0.0b
Counts
48 → 4
Alt Table
StatusErrorProgram
46.0b
(cbrt.f64 (pow.f64 (/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))) 3))
39.0b
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b))))
17.1b
(/.f64 (+.f64 a b) (*.f64 a b))
3.7b
(+.f64 (/.f64 1 b) (/.f64 1 a))
Compiler

Compiled 592 to 206 computations (65.2% saved)

regimes304.0ms (2.3%)

Accuracy

Total 0.0b remaining (51.4%)

Threshold costs 0.0b (51.4%)

Counts
54 → 3
Compiler

Compiled 4570 to 2868 computations (37.2% 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
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044152
160152
263152
361152

end237.0ms (1.8%)

Compiler

Compiled 477 to 271 computations (43.2% saved)

Profiling

Loading profile data...