Details

Time bar (total: 13.1s)

analyze2.2s (16.7%)

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.2s (62.3%)

Symmetry

(sort a b)

Results
4.9s4205×body2048valid
1.7s2403×body1024valid
375.0ms645×body1024invalid
353.0ms766×body512valid
340.0ms400×body2048invalid
137.0ms327×body512invalid
92.0ms561×body128valid
92.0ms303×body256valid
51.0ms152×body256invalid
50.0ms320×body128invalid
30.0ms18×body4096valid
Compiler

Compiled 95 to 67 computations (29.5% saved)

simplify22.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01828
14728
210828
327128
498928
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 87 to 54 computations (37.9% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(expm1.f64 (*.f64 eps b))
0.4b
(/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b)))
11.9b
(/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a)))
26.7b
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b))))

series387.0ms (2.9%)

Counts
4 → 132
Calls

4 calls:

187.0ms
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b))))
147.0ms
(/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b)))
47.0ms
(/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a)))
5.0ms
(expm1.f64 (*.f64 eps b))

rewrite83.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
898×prod-diff_binary64
151×add-sqr-sqrt_binary64
143×log1p-expm1-u_binary64
143×expm1-log1p-u_binary64
139×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01476
130076
2427276
Stop Event
node limit
Counts
4 → 121
Calls

4 calls:

80.0ms
(expm1.f64 (*.f64 eps b))
80.0ms
(/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b)))
80.0ms
(/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a)))
80.0ms
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b))))

simplify102.0ms (0.8%)

Algorithm
egg-herbie
Rules
688×fma-def_binary64
684×times-frac_binary64
610×associate-/l*_binary64
237×*-commutative_binary64
216×+-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
06629175
123398534
Stop Event
node limit
Counts
253 → 208

prune201.0ms (1.5%)

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
29.2b
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b))))
49.0b
(*.f64 (/.f64 (/.f64 eps (*.f64 eps (expm1.f64 (*.f64 a eps)))) b) (expm1.f64 (*.f64 a eps)))
27.2b
(/.f64 1 (/.f64 (expm1.f64 (*.f64 eps b)) (*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))))))
7.2b
(+.f64 (fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (/.f64 1 b)) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))
12.9b
(/.f64 (+.f64 a b) (*.f64 a b))
Compiler

Compiled 12883 to 4639 computations (64% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (/.f64 1 b))
0.0b
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
6.4b
(*.f64 b (*.f64 eps eps))
6.9b
(*.f64 a (*.f64 eps eps))

series50.0ms (0.4%)

Counts
4 → 120
Calls

4 calls:

20.0ms
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (/.f64 1 b))
16.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
7.0ms
(*.f64 a (*.f64 eps eps))
7.0ms
(*.f64 b (*.f64 eps eps))

rewrite55.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
625×log-prod_binary64
227×expm1-udef_binary64
227×log1p-udef_binary64
209×log-pow_binary64
188×prod-diff_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01342
126742
2320942
Stop Event
node limit
Counts
4 → 94
Calls

4 calls:

53.0ms
(fma.f64 1/12 (*.f64 a (*.f64 eps eps)) (/.f64 1 b))
53.0ms
(fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))
53.0ms
(*.f64 b (*.f64 eps eps))
53.0ms
(*.f64 a (*.f64 eps eps))

simplify129.0ms (1%)

Algorithm
egg-herbie
Rules
603×sqr-pow_binary64
417×associate-*l*_binary64
364×*-commutative_binary64
330×fabs-mul_binary64
312×cube-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0161290
1321236
2651236
31471236
43841236
512241236
616541236
720761236
821761236
923241236
1024981236
1127491236
1230701236
1334401236
1438941236
1544751236
Stop Event
node limit
Counts
214 → 108

prune83.0ms (0.6%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1071108
Fresh123
Picked101
Done011
Total1094113
Error
0.0b
Counts
113 → 4
Alt Table
StatusErrorProgram
29.2b
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b))))
5.4b
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))
27.2b
(/.f64 1 (/.f64 (expm1.f64 (*.f64 eps b)) (*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))))))
12.9b
(/.f64 (+.f64 a b) (*.f64 a b))
Compiler

Compiled 2952 to 1506 computations (49% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.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.4b
(*.f64 b (*.f64 eps eps))

series24.0ms (0.2%)

Counts
1 → 36
Calls

1 calls:

24.0ms
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))

rewrite51.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
659×prod-diff_binary64
218×expm1-udef_binary64
218×log1p-udef_binary64
126×add-sqr-sqrt_binary64
119×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01220
125520
2323920
Stop Event
node limit
Counts
1 → 35
Calls

1 calls:

50.0ms
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))

simplify90.0ms (0.7%)

Algorithm
egg-herbie
Rules
599×sqr-pow_binary64
402×fabs-mul_binary64
386×cube-prod_binary64
274×pow-sqr_binary64
254×*-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
016660
131604
258604
3118604
4275604
5838604
61230604
71656604
81756604
91891604
102063604
112306604
122619604
132989604
143443604
154022604
164732604
Stop Event
node limit
Counts
71 → 46

prune82.0ms (0.6%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New991100
Fresh112
Picked011
Done011
Total1004104
Error
0.0b
Counts
104 → 4
Alt Table
StatusErrorProgram
29.2b
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b))))
5.4b
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))
27.2b
(/.f64 1 (/.f64 (expm1.f64 (*.f64 eps b)) (*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))))))
6.6b
(*.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2))
Compiler

Compiled 2205 to 1281 computations (41.9% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2))
0.5b
(cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
0.6b
(pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2)
6.4b
(*.f64 b (*.f64 eps eps))

series197.0ms (1.5%)

Counts
3 → 108
Calls

3 calls:

107.0ms
(pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2)
68.0ms
(cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
21.0ms
(*.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2))

rewrite56.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
659×prod-diff_binary64
150×add-sqr-sqrt_binary64
144×log1p-expm1-u_binary64
144×expm1-log1p-u_binary64
143×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01667
133667
2382967
Stop Event
node limit
Counts
3 → 75
Calls

3 calls:

54.0ms
(*.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2))
54.0ms
(cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))))
54.0ms
(pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2)

simplify90.0ms (0.7%)

Algorithm
egg-herbie
Rules
521×fma-def_binary64
466×associate-/r*_binary64
272×associate-*l*_binary64
264×times-frac_binary64
188×associate-*r/_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05038101
117277607
Stop Event
node limit
Counts
183 → 215

prune446.0ms (3.4%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New3431344
Fresh011
Picked011
Done022
Total3435348
Error
0b
Counts
348 → 5
Alt Table
StatusErrorProgram
6.0b
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))) 2) (cbrt.f64 (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a))) (/.f64 1 b))
5.4b
(+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))
29.2b
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))) (expm1.f64 (*.f64 eps b))))
27.2b
(/.f64 1 (/.f64 (expm1.f64 (*.f64 eps b)) (*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))))))
6.6b
(*.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 1 b) (fma.f64 1/12 (*.f64 b (*.f64 eps eps)) (/.f64 1 a)))) 2))
Compiler

Compiled 21987 to 15123 computations (31.2% saved)

regimes437.0ms (3.3%)

Accuracy

Total 0.8b remaining (94.7%)

Threshold costs 0.8b (94.7%)

Counts
70 → 3
Compiler

Compiled 5722 to 3784 computations (33.9% saved)

bsearch3.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
037132
152132
255132
Stop Event
saturated

end117.0ms (0.9%)

Remove

(sort a b)

Compiler

Compiled 484 to 284 computations (41.3% saved)

Profiling

Loading profile data...