Details

Time bar (total: 6.5s)

analyze297.0ms (4.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%87.4%12.6%6
20.3%59.3%20.4%7
21.1%51.5%27.4%8
35.5%30.4%34%9
35.7%26.1%38.1%10
42.8%15.4%41.8%11
42.9%13.2%44%12
46.4%7.8%45.8%13
46.4%6.6%47%14
Compiler

Compiled 32 to 26 computations (18.8% saved)

sample3.4s (52.2%)

Results
1.6s2028×body1024valid
703.0ms4423×body128valid
448.0ms1041×body512valid
235.0ms249×body2048valid
220.0ms515×body256valid
69.0ms416×body128invalid
11.0ms18×body1024invalid
5.0ms12×body512invalid
2.0msbody256invalid
Compiler

Compiled 95 to 77 computations (18.9% saved)

simplify65.0ms (1%)

Algorithm
egg-herbie
Rules
750×times-frac_binary64
577×div-sub_binary64
534×cancel-sign-sub-inv_binary64
519×fma-neg_binary64
467×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02045
15745
215337
339437
4134737
5404837
6461437
7525937

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
30.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
43.9b
(*.f64 1/2 (fma.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (exp.f64 (+.f64 eps -1)) x) (/.f64 (-.f64 1 (/.f64 1 eps)) (exp.f64 (fma.f64 eps x x)))))
30.3b
(/.f64 (-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
Compiler

Compiled 172 to 133 computations (22.7% saved)

localize19.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x))))
0.0b
(exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))
0.0b
(exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))
2.4b
(-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))

series63.0ms (1%)

Counts
4 → 96
Calls

4 calls:

37.0ms
(-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))
12.0ms
(*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x))))
7.0ms
(exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))
6.0ms
(exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))

rewrite89.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
495×prod-diff_binary64
203×add-sqr-sqrt_binary64
192×log1p-expm1-u_binary64
192×expm1-log1p-u_binary64
190×add-log-exp_binary64
Counts
4 → 124
Calls

4 calls:

85.0ms
(*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x))))
85.0ms
(exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))
85.0ms
(exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))
85.0ms
(-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01884
140772
2437672
3533672
000
100

simplify111.0ms (1.7%)

Algorithm
egg-herbie
Rules
407×fma-neg_binary64
372×cancel-sign-sub-inv_binary64
357×fma-def_binary64
251×distribute-rgt-out_binary64
244×associate-+r+_binary64
Counts
220 → 191
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02162581
16962498
227542382
346282382
452312382

prune261.0ms (4%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1865191
Fresh101
Picked101
Done000
Total1885193
Error
0.0b
Counts
193 → 5
Alt Table
StatusErrorProgram
48.1b
(/.f64 (pow.f64 (pow.f64 (-.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) 3) 1/3) 2)
22.1b
(/.f64 (+.f64 2 (*.f64 x (-.f64 (*.f64 (*.f64 eps eps) x) x))) 2)
48.1b
(/.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 3) (pow.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) 3)) (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 2) (-.f64 (*.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) (*.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))))))) 2)
30.3b
(/.f64 (-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
47.9b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) 2) (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) 2)
Compiler

Compiled 8607 to 6348 computations (26.2% saved)

localize7.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 (*.f64 eps eps) x) x)
0.0b
(*.f64 x (-.f64 (*.f64 (*.f64 eps eps) x) x))
9.2b
(*.f64 (*.f64 eps eps) x)

series31.0ms (0.5%)

Counts
3 → 72
Calls

3 calls:

14.0ms
(*.f64 x (-.f64 (*.f64 (*.f64 eps eps) x) x))
9.0ms
(*.f64 (*.f64 eps eps) x)
8.0ms
(-.f64 (*.f64 (*.f64 eps eps) x) x)

rewrite71.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
767×log1p-expm1-u_binary64
767×expm1-log1p-u_binary64
697×prod-diff_binary64
132×egg-rr
78×add-sqr-sqrt_binary64
Counts
3 → 132
Calls

3 calls:

68.0ms
(-.f64 (*.f64 (*.f64 eps eps) x) x)
68.0ms
(*.f64 x (-.f64 (*.f64 (*.f64 eps eps) x) x))
68.0ms
(*.f64 (*.f64 eps eps) x)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0730
115330
2195330
3597330
000
100

simplify81.0ms (1.2%)

Algorithm
egg-herbie
Rules
653×unsub-neg_binary64
568×fma-def_binary64
371×cancel-sign-sub-inv_binary64
356×neg-sub0_binary64
354×associate-*l*_binary64
Counts
204 → 148
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022694
156610
2125610
3357610
41318610
53078610
64380610
75102610

prune112.0ms (1.7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1480148
Fresh044
Picked011
Done000
Total1485153
Error
0.0b
Counts
153 → 5
Alt Table
StatusErrorProgram
48.1b
(/.f64 (pow.f64 (pow.f64 (-.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) 3) 1/3) 2)
22.1b
(/.f64 (+.f64 2 (*.f64 x (-.f64 (*.f64 (*.f64 eps eps) x) x))) 2)
48.1b
(/.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 3) (pow.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) 3)) (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 2) (-.f64 (*.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) (*.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))))))) 2)
30.3b
(/.f64 (-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
47.9b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) 2) (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) 2)
Compiler

Compiled 3513 to 1752 computations (50.1% saved)

localize15.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x)))
0.0b
(exp.f64 (*.f64 (-.f64 1 eps) x))
0.0b
(exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))
3.9b
(-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))

series88.0ms (1.4%)

Counts
3 → 48
Calls

3 calls:

58.0ms
(-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))
24.0ms
(/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x)))
6.0ms
(exp.f64 (*.f64 (-.f64 1 eps) x))

rewrite127.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
613×prod-diff_binary64
194×add-sqr-sqrt_binary64
184×log1p-expm1-u_binary64
184×expm1-log1p-u_binary64
182×add-log-exp_binary64
Counts
3 → 138
Calls

3 calls:

122.0ms
(/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x)))
122.0ms
(exp.f64 (*.f64 (-.f64 1 eps) x))
122.0ms
(-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01767
138563
2456163
3572263
000
100

simplify96.0ms (1.5%)

Algorithm
egg-herbie
Rules
847×fma-neg_binary64
493×associate--r+_binary64
482×cancel-sign-sub-inv_binary64
224×associate-+r+_binary64
223×sub-neg_binary64
Counts
186 → 190
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01892048
16111970
223431872
346551871
453201871

prune293.0ms (4.5%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2291230
Fresh123
Picked101
Done011
Total2314235
Error
0.0b
Counts
235 → 4
Alt Table
StatusErrorProgram
30.3b
(/.f64 (-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
22.1b
(/.f64 (+.f64 2 (*.f64 x (-.f64 (*.f64 (*.f64 eps eps) x) x))) 2)
48.1b
(/.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 3) (pow.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) 3)) (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 2) (-.f64 (*.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) (*.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))))))) 2)
47.9b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) 2) (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) 2)
Compiler

Compiled 11468 to 8617 computations (24.9% saved)

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x)))
0.0b
(exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))
0.0b
(pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))
3.9b
(-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))

series94.0ms (1.4%)

Counts
3 → 72
Calls

3 calls:

63.0ms
(-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))
24.0ms
(/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x)))
6.0ms
(pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))

rewrite98.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
544×prod-diff_binary64
205×add-sqr-sqrt_binary64
195×log1p-expm1-u_binary64
195×expm1-log1p-u_binary64
194×add-log-exp_binary64
Counts
3 → 129
Calls

3 calls:

93.0ms
(/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x)))
93.0ms
(pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))
93.0ms
(-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01867
140863
2454763
3563363
000
100

simplify122.0ms (1.9%)

Algorithm
egg-herbie
Rules
847×fma-neg_binary64
493×associate--r+_binary64
482×cancel-sign-sub-inv_binary64
224×associate-+r+_binary64
223×sub-neg_binary64
Counts
201 → 184
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01902336
16122258
223442160
346582159
453232159

prune276.0ms (4.3%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New2240224
Fresh022
Picked011
Done011
Total2244228
Error
0.0b
Counts
228 → 4
Alt Table
StatusErrorProgram
30.3b
(/.f64 (-.f64 (/.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (E.f64) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
22.1b
(/.f64 (+.f64 2 (*.f64 x (-.f64 (*.f64 (*.f64 eps eps) x) x))) 2)
48.1b
(/.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 3) (pow.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) 3)) (+.f64 (pow.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) 2) (-.f64 (*.f64 (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) (*.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps))))))))) 2)
47.9b
(/.f64 (fma.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) 2) (cbrt.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (*.f64 x (+.f64 1 eps)))))) 2)
Compiler

Compiled 11089 to 8286 computations (25.3% saved)

regimes529.0ms (8.1%)

Accuracy

Total 0.5b remaining (49.1%)

Threshold costs 0.5b (49.1%)

Counts
125 → 1
Compiler

Compiled 15394 to 11818 computations (23.2% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01528
12928
24428
35228
45528
55428

end135.0ms (2.1%)

Compiler

Compiled 231 to 180 computations (22.1% saved)

Profiling

Loading profile data...