Details

Time bar (total: 8.2s)

analyze1.3s (15.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%24.7%75.3%0
0%24.7%75.3%1
0%24.7%75.3%2
0%24.7%75.3%3
0%24.7%75.3%4
6.2%18.5%75.3%5
7.7%17%75.3%6
11.6%13.1%75.3%7
12.7%12%75.3%8
14.9%9.8%75.3%9
15.5%9.2%75.3%10
16.3%8.4%75.3%11
16.7%8.1%75.3%12
17%7.7%75.3%13
17.2%7.5%75.3%14
Compiler

Compiled 35 to 18 computations (48.6% saved)

sample1.9s (22.8%)

Results
1.8s8256×body128valid
Compiler

Compiled 98 to 49 computations (50% saved)

simplify77.0ms (0.9%)

Algorithm
egg-herbie
Rules
505×fma-def_binary32
440×times-frac_binary32
349×distribute-rgt-in_binary32
300×fma-neg_binary32
273×distribute-rgt-out_binary32
Counts
1 → 2
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01243
13843
28241
318141
435739
577230
6229229
7334129
8424329
9492229
10487529

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(/.f32 (/.f32 1 s) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2)))
0.1b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))))
Compiler

Compiled 142 to 75 computations (47.2% saved)

localize42.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))
0.0b
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
0.0b
(*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))))
0.1b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))))

series196.0ms (2.4%)

Counts
4 → 96
Calls

4 calls:

143.0ms
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))))
29.0ms
(*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))))
13.0ms
(+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))
11.0ms
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))

rewrite73.0ms (0.9%)

Algorithm
rewrite-expression-head
Rules
58×exp-prod_binary32
57×times-frac_binary32
48×add-sqr-sqrt_binary32
46×*-un-lft-identity_binary32
42×add-cube-cbrt_binary32
Counts
4 → 153
Calls

4 calls:

27.0ms
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))))
16.0ms
(*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))))
8.0ms
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
6.0ms
(+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))

simplify140.0ms (1.7%)

Algorithm
egg-herbie
Rules
857×distribute-rgt-in_binary32
838×fma-def_binary32
248×times-frac_binary32
170×associate-*l*_binary32
162×associate-/l*_binary32
Counts
249 → 261
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03065813
17505303
226305170
353395170

prune663.0ms (8.1%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New4934497
Fresh011
Picked101
Done000
Total4945499
Error
0.0b
Counts
499 → 5
Alt Table
StatusErrorProgram
0.3b
(/.f32 (/.f32 1 s) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2)))
0.1b
(/.f32 (expm1.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (*.f32 (*.f32 s (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))) (+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))))
0.1b
(/.f32 1 (/.f32 (*.f32 s (pow.f32 (+.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 1) 2)) (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))))
0.1b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)))))
0.7b
(exp.f32 (-.f32 (neg.f32 (/.f32 (fabs.f32 x) s)) (fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s))))
Compiler

Compiled 17584 to 5396 computations (69.3% saved)

localize64.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
0.0b
(*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2))))
0.1b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)))))
0.1b
(pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)

series269.0ms (3.3%)

Counts
3 → 40
Calls

3 calls:

204.0ms
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)))))
46.0ms
(*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2))))
19.0ms
(pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)

rewrite35.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary32
11×add-sqr-sqrt_binary32
10×add-cbrt-cube_binary32
add-cube-cbrt_binary32
add-exp-log_binary32
Counts
3 → 74
Calls

3 calls:

20.0ms
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)))))
8.0ms
(*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2))))
2.0ms
(pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)

simplify117.0ms (1.4%)

Algorithm
egg-herbie
Rules
554×distribute-rgt-in_binary32
516×distribute-lft-in_binary32
453×fma-def_binary32
187×fma-neg_binary32
152×associate-/l/_binary32
Counts
114 → 145
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01754153
14503512
215963343
346483343
449613343

prune332.0ms (4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2442246
Fresh314
Picked011
Done000
Total2474251
Error
0.0b
Counts
251 → 4
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
0.2b
(/.f32 (/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s))) (neg.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)))
0.1b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)))))
0.7b
(exp.f32 (-.f32 (neg.f32 (/.f32 (fabs.f32 x) s)) (fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s))))
Compiler

Compiled 9703 to 4745 computations (51.1% saved)

localize53.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (/.f32 (fabs.f32 x) s))
0.0b
(exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))
0.1b
(pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)
0.2b
(*.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s)))

series156.0ms (1.9%)

Counts
4 → 64
Calls

4 calls:

102.0ms
(*.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s)))
32.0ms
(pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)
12.0ms
(exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))
10.0ms
(exp.f32 (/.f32 (fabs.f32 x) s))

rewrite41.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
104×exp-prod_binary32
84×times-frac_binary32
79×add-sqr-sqrt_binary32
65×*-un-lft-identity_binary32
65×add-cube-cbrt_binary32
Counts
4 → 166
Calls

4 calls:

10.0ms
(*.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s)))
6.0ms
(exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))
6.0ms
(pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)
4.0ms
(exp.f32 (/.f32 (fabs.f32 x) s))

simplify140.0ms (1.7%)

Algorithm
egg-herbie
Rules
434×associate-*l*_binary32
301×times-frac_binary32
300×associate-/l*_binary32
284×exp-prod_binary32
267×fma-def_binary32
Counts
230 → 268
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02854328
16243983
216043686
346153686
449223686

prune398.0ms (4.8%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New3190319
Fresh022
Picked011
Done011
Total3194323
Error
0.0b
Counts
323 → 4
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
0.2b
(/.f32 (/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s))) (neg.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)))
0.1b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)))))
0.7b
(exp.f32 (-.f32 (neg.f32 (/.f32 (fabs.f32 x) s)) (fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s))))
Compiler

Compiled 11083 to 3746 computations (66.2% saved)

localize57.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))
0.1b
(/.f32 (/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s))) (neg.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)))
0.1b
(pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)
0.1b
(/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s)))

series274.0ms (3.3%)

Counts
2 → 32
Calls

2 calls:

247.0ms
(/.f32 (/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s))) (neg.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)))
27.0ms
(/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s)))

rewrite60.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
238×times-frac_binary32
129×*-un-lft-identity_binary32
129×add-sqr-sqrt_binary32
129×add-cube-cbrt_binary32
42×distribute-lft-neg-in_binary32
Counts
2 → 199
Calls

2 calls:

13.0ms
(/.f32 (/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s))) (neg.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)))
7.0ms
(/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s)))

simplify441.0ms (5.4%)

Algorithm
egg-herbie
Rules
938×times-frac_binary32
492×fma-def_binary32
343×associate-/l/_binary32
307×associate-/r*_binary32
144×distribute-rgt-in_binary32
Counts
231 → 327
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035015455
184014895
2237514850
3448214847
4499514847
5490214847

prune629.0ms (7.6%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New4980498
Fresh011
Picked011
Done022
Total4984502
Error
0.0b
Counts
502 → 4
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
0.2b
(/.f32 (/.f32 -1 (exp.f32 (/.f32 (fabs.f32 x) s))) (neg.f32 (fma.f32 s (fma.f32 2 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)))
0.1b
(/.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) (*.f32 s (+.f32 1 (+.f32 (*.f32 2 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s)))) (pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)))))
0.7b
(exp.f32 (-.f32 (neg.f32 (/.f32 (fabs.f32 x) s)) (fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s))))
Compiler

Compiled 23295 to 8900 computations (61.8% saved)

regimes690.0ms (8.4%)

Accuracy

Total 0.1b remaining (58.7%)

Threshold costs 0.1b (58.7%)

Counts
132 → 1
Compiler

Compiled 18133 to 10589 computations (41.6% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
*-commutative_binary32
sub-neg_binary32
neg-sub0_binary32
distribute-neg-frac_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01646
12446
22746
33046
43346
53446
63346

end86.0ms (1%)

Compiler

Compiled 169 to 95 computations (43.8% saved)

Profiling

Loading profile data...