Details

Time bar (total: 4.8s)

analyze327.0ms (6.8%)

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

Results
1.4s2037×body1024valid
743.0ms4453×body128valid
454.0ms996×body512valid
229.0ms221×body2048valid
171.0ms549×body256valid
77.0ms462×body128invalid
18.0ms19×body512invalid
14.0ms21×body1024invalid
1.0msbody256invalid
Compiler

Compiled 95 to 77 computations (18.9% saved)

simplify19.0ms (0.4%)

Algorithm
egg-herbie
Rules
750×times-frac_binary64
534×cancel-sign-sub-inv_binary64
519×fma-neg_binary64
197×associate-/l/_binary64
123×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02045
15745
215937
351037
4166037
Stop Event
node limit
Counts
1 → 2

prune6.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
29.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
30.2b
(*.f64 1/2 (fma.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (exp.f64 x) (+.f64 eps -1)) (/.f64 (-.f64 1 (/.f64 1 eps)) (exp.f64 (fma.f64 eps x x)))))
29.1b
(/.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)

localize16.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.2b
(-.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)))))

series61.0ms (1.3%)

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)))))
13.0ms
(*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x))))
6.0ms
(exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))
5.0ms
(exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))

rewrite49.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
203×add-sqr-sqrt_binary64
192×log1p-expm1-u_binary64
192×expm1-log1p-u_binary64
190×add-cbrt-cube_binary64
188×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01884
141572
Stop Event
node limit
Counts
4 → 124
Calls

4 calls:

45.0ms
(*.f64 (+.f64 1 (/.f64 1 eps)) (exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x))))
45.0ms
(exp.f64 (neg.f64 (*.f64 (-.f64 1 eps) x)))
45.0ms
(exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x)))
45.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)))))

simplify57.0ms (1.2%)

Algorithm
egg-herbie
Rules
372×cancel-sign-sub-inv_binary64
357×fma-def_binary64
251×distribute-rgt-out_binary64
245×associate-+r+_binary64
212×+-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02162581
17622498
229442382
Stop Event
node limit
Counts
220 → 191

prune191.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
15.3b
(/.f64 (+.f64 (*.f64 (pow.f64 eps 2) (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 x (exp.f64 (neg.f64 x)))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 2) (*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x))))) (*.f64 2 (exp.f64 (neg.f64 x)))))) 2)
1.0b
(/.f64 (*.f64 (+.f64 x 1) (/.f64 2 (exp.f64 x))) 2)
21.9b
(/.f64 (+.f64 2 (*.f64 x (-.f64 (*.f64 x (*.f64 eps eps)) x))) 2)
60.8b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (*.f64 (+.f64 (/.f64 1 eps) -1) (pow.f64 (exp.f64 (+.f64 1 eps)) x)))) 3) 2)
29.1b
(/.f64 (-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (exp.f64 -1) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
Compiler

Compiled 8429 to 6190 computations (26.6% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 2 (exp.f64 x))
0.0b
(*.f64 (+.f64 x 1) (/.f64 2 (exp.f64 x)))

series14.0ms (0.3%)

Counts
2 → 16
Calls

2 calls:

7.0ms
(/.f64 2 (exp.f64 x))
7.0ms
(*.f64 (+.f64 x 1) (/.f64 2 (exp.f64 x)))

rewrite41.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
780×log1p-expm1-u_binary64
780×expm1-log1p-u_binary64
93×prod-diff_binary64
80×add-sqr-sqrt_binary64
76×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0818
116918
2209418
Stop Event
node limit
Counts
2 → 66
Calls

2 calls:

40.0ms
(/.f64 2 (exp.f64 x))
40.0ms
(*.f64 (+.f64 x 1) (/.f64 2 (exp.f64 x)))

simplify27.0ms (0.6%)

Algorithm
egg-herbie
Rules
354×distribute-rgt-neg-in_binary64
351×fma-def_binary64
297×distribute-lft-neg-in_binary64
261×associate-*l*_binary64
261×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
032202
194187
2252182
3812176
43029158
Stop Event
node limit
Counts
82 → 83

prune78.0ms (1.6%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New82183
Fresh134
Picked101
Done000
Total84488
Error
0.0b
Counts
88 → 4
Alt Table
StatusErrorProgram
15.3b
(/.f64 (+.f64 (*.f64 (pow.f64 eps 2) (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 x (exp.f64 (neg.f64 x)))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 2) (*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x))))) (*.f64 2 (exp.f64 (neg.f64 x)))))) 2)
1.0b
(/.f64 (/.f64 (+.f64 x 1) (*.f64 (exp.f64 x) 1/2)) 2)
60.8b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (*.f64 (+.f64 (/.f64 1 eps) -1) (pow.f64 (exp.f64 (+.f64 1 eps)) x)))) 3) 2)
29.1b
(/.f64 (-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (exp.f64 -1) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
Compiler

Compiled 1369 to 1002 computations (26.8% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (+.f64 x 1) (*.f64 (exp.f64 x) 1/2))

series8.0ms (0.2%)

Counts
1 → 12
Calls

1 calls:

8.0ms
(/.f64 (+.f64 x 1) (*.f64 (exp.f64 x) 1/2))

rewrite40.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
840×log1p-expm1-u_binary64
840×expm1-log1p-u_binary64
111×prod-diff_binary64
81×add-sqr-sqrt_binary64
77×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0812
116811
2220511
Stop Event
node limit
Counts
1 → 40
Calls

1 calls:

39.0ms
(/.f64 (+.f64 x 1) (*.f64 (exp.f64 x) 1/2))

simplify22.0ms (0.5%)

Algorithm
egg-herbie
Rules
884×fma-neg_binary64
767×cancel-sign-sub-inv_binary64
218×distribute-rgt-neg-in_binary64
199×distribute-lft-neg-in_binary64
179×fma-def_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
024161
167151
2160151
3490147
41805129
Stop Event
node limit
Counts
52 → 49

prune48.0ms (1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New49049
Fresh033
Picked011
Done000
Total49453
Error
0.0b
Counts
53 → 4
Alt Table
StatusErrorProgram
15.3b
(/.f64 (+.f64 (*.f64 (pow.f64 eps 2) (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 x (exp.f64 (neg.f64 x)))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 2) (*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x))))) (*.f64 2 (exp.f64 (neg.f64 x)))))) 2)
1.0b
(/.f64 (/.f64 (+.f64 x 1) (*.f64 (exp.f64 x) 1/2)) 2)
60.8b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (*.f64 (+.f64 (/.f64 1 eps) -1) (pow.f64 (exp.f64 (+.f64 1 eps)) x)))) 3) 2)
29.1b
(/.f64 (-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (exp.f64 -1) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
Compiler

Compiled 916 to 642 computations (29.9% saved)

localize19.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.6b
(*.f64 (pow.f64 eps 2) (*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x))))
7.8b
(*.f64 (pow.f64 eps 2) (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2)))
8.9b
(*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2))
10.1b
(*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x)))

series56.0ms (1.2%)

Counts
4 → 40
Calls

4 calls:

28.0ms
(*.f64 (pow.f64 eps 2) (*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x))))
18.0ms
(*.f64 (pow.f64 eps 2) (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2)))
5.0ms
(*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2))
4.0ms
(*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x)))

rewrite50.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
645×log-prod_binary64
212×expm1-udef_binary64
212×log1p-udef_binary64
195×log-pow_binary64
142×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01456
129547
2342747
Stop Event
node limit
Counts
4 → 76
Calls

4 calls:

49.0ms
(*.f64 (pow.f64 eps 2) (*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x))))
49.0ms
(*.f64 (pow.f64 eps 2) (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2)))
49.0ms
(*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2))
49.0ms
(*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x)))

simplify34.0ms (0.7%)

Algorithm
egg-herbie
Rules
653×unswap-sqr_binary64
370×distribute-rgt-neg-in_binary64
341×associate-*l*_binary64
333×fma-def_binary64
323×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
061662
1187648
2658568
33211568
Stop Event
node limit
Counts
116 → 115

prune129.0ms (2.7%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New1150115
Fresh022
Picked011
Done011
Total1154119
Error
0.0b
Counts
119 → 4
Alt Table
StatusErrorProgram
15.3b
(/.f64 (+.f64 (*.f64 (pow.f64 eps 2) (*.f64 (exp.f64 (neg.f64 x)) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 x (exp.f64 (neg.f64 x)))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 eps 2) (*.f64 (pow.f64 x 3) (exp.f64 (neg.f64 x))))) (*.f64 2 (exp.f64 (neg.f64 x)))))) 2)
1.0b
(/.f64 (/.f64 (+.f64 x 1) (*.f64 (exp.f64 x) 1/2)) 2)
60.8b
(/.f64 (pow.f64 (cbrt.f64 (-.f64 (exp.f64 (+.f64 (*.f64 (-.f64 1 eps) x) (log1p.f64 (/.f64 1 eps)))) (*.f64 (+.f64 (/.f64 1 eps) -1) (pow.f64 (exp.f64 (+.f64 1 eps)) x)))) 3) 2)
29.1b
(/.f64 (-.f64 (*.f64 (+.f64 1 (/.f64 1 eps)) (pow.f64 (exp.f64 -1) (*.f64 (-.f64 1 eps) x))) (*.f64 (-.f64 (/.f64 1 eps) 1) (exp.f64 (neg.f64 (*.f64 (+.f64 1 eps) x))))) 2)
Compiler

Compiled 5239 to 3001 computations (42.7% saved)

regimes246.0ms (5.1%)

Accuracy

Total 0.7b remaining (98.2%)

Threshold costs 0.7b (98.2%)

Counts
60 → 1
Compiler

Compiled 6252 to 4664 computations (25.4% saved)

simplify3.0ms (0.1%)

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
01018
11318
21818
32018
42118
Stop Event
saturated

end93.0ms (1.9%)

Compiler

Compiled 144 to 111 computations (22.9% saved)

Profiling

Loading profile data...