Details

Time bar (total: 6.6s)

analyze45.0ms (0.7%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
25%74.9%0.1%3
62.4%37.5%0.1%4
68.7%31.2%0.1%5
68.7%18.7%12.6%6
68.7%17.2%14.1%7
68.7%10.1%21.2%8
68.7%9%22.3%9
68.7%5.3%26%10
68.7%4.6%26.7%11
68.7%2.7%28.6%12
68.7%2.3%29%13
68.7%1.4%30%14
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample784.0ms (11.9%)

Results
755.0ms8256×body128valid
2.0ms28×body128invalid
Compiler

Compiled 32 to 20 computations (37.5% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
1813
Stop Event
saturated
Counts
1 → 1

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.5b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.5b
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
Compiler

Compiled 30 to 18 computations (40% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (exp.f64 a) (exp.f64 b))
0.5b
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))

series30.0ms (0.4%)

Counts
2 → 48
Calls

2 calls:

26.0ms
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
4.0ms
(+.f64 (exp.f64 a) (exp.f64 b))

rewrite53.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
793×log1p-expm1-u_binary64
793×expm1-log1p-u_binary64
485×prod-diff_binary64
77×add-sqr-sqrt_binary64
73×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0721
114721
2210221
Stop Event
node limit
Counts
2 → 70
Calls

2 calls:

52.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
52.0ms
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))

simplify32.0ms (0.5%)

Algorithm
egg-herbie
Rules
475×times-frac_binary64
448×associate-+l+_binary64
426×fma-def_binary64
303×associate-/l*_binary64
240×associate--l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01031020
1334981
21169965
Stop Event
node limit
Counts
118 → 100

prune105.0ms (1.6%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New973100
Fresh000
Picked101
Done000
Total983101
Error
0b
Counts
101 → 3
Alt Table
StatusErrorProgram
0.5b
(exp.f64 (-.f64 a (log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))))
10.1b
(-.f64 (+.f64 (/.f64 1 (+.f64 1 (exp.f64 b))) (/.f64 a (+.f64 1 (exp.f64 b)))) (/.f64 a (*.f64 (+.f64 1 (exp.f64 b)) (+.f64 (exp.f64 b) 1))))
27.9b
(+.f64 (/.f64 (exp.f64 a) (+.f64 1 (exp.f64 a))) (-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3)) (fma.f64 1/2 (/.f64 (*.f64 (exp.f64 a) (*.f64 b b)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4))))))))
Compiler

Compiled 2220 to 1061 computations (52.2% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f64 (-.f64 a (log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))))
0.0b
(+.f64 (exp.f64 a) (exp.f64 b))
0.5b
(-.f64 a (log.f64 (+.f64 (exp.f64 a) (exp.f64 b))))
1.8b
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))

series668.0ms (10.1%)

Counts
3 → 72
Calls

3 calls:

312.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
191.0ms
(-.f64 a (log.f64 (+.f64 (exp.f64 a) (exp.f64 b))))
164.0ms
(exp.f64 (-.f64 a (log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))))

rewrite60.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
814×prod-diff_binary64
327×fma-def_binary64
176×fma-neg_binary64
174×expm1-udef_binary64
174×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0936
118736
2260836
Stop Event
node limit
Counts
3 → 141
Calls

3 calls:

57.0ms
(exp.f64 (-.f64 a (log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))))
57.0ms
(-.f64 a (log.f64 (+.f64 (exp.f64 a) (exp.f64 b))))
57.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))

simplify44.0ms (0.7%)

Algorithm
egg-herbie
Rules
591×fma-def_binary64
485×times-frac_binary64
400×associate-/l*_binary64
217×sub-neg_binary64
203×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01381993
14711932
218281690
Stop Event
node limit
Counts
213 → 194

prune220.0ms (3.3%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New2431244
Fresh112
Picked101
Done000
Total2452247
Error
0b
Counts
247 → 2
Alt Table
StatusErrorProgram
0.5b
(exp.f64 (-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b))))))
27.9b
(+.f64 (/.f64 (exp.f64 a) (+.f64 1 (exp.f64 a))) (-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3)) (fma.f64 1/2 (/.f64 (*.f64 (exp.f64 a) (*.f64 b b)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4))))))))
Compiler

Compiled 5714 to 2374 computations (58.5% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f64 (-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b))))))
0.0b
(+.f64 1 (exp.f64 b))
0.0b
(-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b)))))
0.5b
(log.f64 (+.f64 1 (exp.f64 b)))

series510.0ms (7.7%)

Counts
4 → 40
Calls

4 calls:

202.0ms
(-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b)))))
162.0ms
(exp.f64 (-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b))))))
145.0ms
(log.f64 (+.f64 1 (exp.f64 b)))
1.0ms
(+.f64 1 (exp.f64 b))

rewrite79.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
608×fma-def_binary64
266×fma-neg_binary64
218×expm1-udef_binary64
217×log1p-udef_binary64
183×egg-rr
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01151
124151
2351951
Stop Event
node limit
Counts
4 → 183
Calls

4 calls:

75.0ms
(exp.f64 (-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b))))))
75.0ms
(+.f64 1 (exp.f64 b))
75.0ms
(-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b)))))
75.0ms
(log.f64 (+.f64 1 (exp.f64 b)))

simplify41.0ms (0.6%)

Algorithm
egg-herbie
Rules
876×fma-def_binary64
275×cancel-sign-sub-inv_binary64
271×times-frac_binary64
222×associate-/l*_binary64
171×associate-*l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01331314
14301219
216601000
Stop Event
node limit
Counts
223 → 229

prune294.0ms (4.4%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New2710271
Fresh011
Picked011
Done000
Total2712273
Error
0b
Counts
273 → 2
Alt Table
StatusErrorProgram
0.5b
(exp.f64 (-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b))))))
27.9b
(+.f64 (/.f64 (exp.f64 a) (+.f64 1 (exp.f64 a))) (-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3)) (fma.f64 1/2 (/.f64 (*.f64 (exp.f64 a) (*.f64 b b)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4))))))))
Compiler

Compiled 7261 to 4062 computations (44.1% saved)

localize35.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.9b
(*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4))))
5.9b
(*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3))))
5.9b
(*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3))
14.1b
(-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3)) (fma.f64 1/2 (/.f64 (*.f64 (exp.f64 a) (*.f64 b b)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4)))))))

series572.0ms (8.7%)

Counts
4 → 96
Calls

4 calls:

264.0ms
(-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3)) (fma.f64 1/2 (/.f64 (*.f64 (exp.f64 a) (*.f64 b b)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4)))))))
132.0ms
(*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3))))
112.0ms
(*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4))))
63.0ms
(*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3))

rewrite76.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
349×log1p-expm1-u_binary64
349×expm1-log1p-u_binary64
342×add-cbrt-cube_binary64
332×add-log-exp_binary64
330×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
032210
1750200
Stop Event
node limit
Counts
4 → 78
Calls

4 calls:

68.0ms
(*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4))))
68.0ms
(*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3))))
68.0ms
(*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3))
68.0ms
(-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3)) (fma.f64 1/2 (/.f64 (*.f64 (exp.f64 a) (*.f64 b b)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4)))))))

simplify72.0ms (1.1%)

Algorithm
egg-herbie
Rules
610×cancel-sign-sub-inv_binary64
434×fma-neg_binary64
289×times-frac_binary64
200×sub-neg_binary64
162×distribute-rgt-out_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01504612
15134384
219253838
Stop Event
node limit
Counts
174 → 144

prune367.0ms (5.5%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New1440144
Fresh000
Picked011
Done011
Total1442146
Error
0b
Counts
146 → 2
Alt Table
StatusErrorProgram
0.5b
(exp.f64 (-.f64 a (+.f64 (/.f64 a (+.f64 1 (exp.f64 b))) (log.f64 (+.f64 1 (exp.f64 b))))))
27.9b
(+.f64 (/.f64 (exp.f64 a) (+.f64 1 (exp.f64 a))) (-.f64 (*.f64 (exp.f64 a) (+.f64 (/.f64 b (/.f64 (pow.f64 (+.f64 1 (exp.f64 a)) 3) b)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 3)))) (fma.f64 1/6 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (pow.f64 b 3)) (fma.f64 1/2 (/.f64 (*.f64 (exp.f64 a) (*.f64 b b)) (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (*.f64 (exp.f64 a) (+.f64 (/.f64 b (pow.f64 (+.f64 1 (exp.f64 a)) 2)) (/.f64 (pow.f64 b 3) (pow.f64 (+.f64 1 (exp.f64 a)) 4))))))))
Compiler

Compiled 14138 to 8580 computations (39.3% saved)

regimes2.4s (36.5%)

Accuracy

Total 0.3b remaining (56.7%)

Threshold costs 0.3b (56.7%)

Counts
431 → 1
Compiler

Compiled 66084 to 42539 computations (35.6% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01220
11520
22020
32220
42320
Stop Event
saturated

end78.0ms (1.2%)

Compiler

Compiled 132 to 90 computations (31.8% saved)

Profiling

Loading profile data...