Details

Time bar (total: 9.9s)

analyze102.0ms (1%)

Algorithm
search
Search
TrueOtherFalseIter
0%24.7%75.3%0
0%24.7%75.3%1
0%24.7%75.3%2
12.4%12.4%75.3%3
12.4%12.4%75.3%4
18.5%6.2%75.3%5
18.5%6.2%75.3%6
21.6%3.1%75.3%7
21.6%3.1%75.3%8
23.2%1.5%75.3%9
23.2%1.5%75.3%10
23.9%0.8%75.3%11
23.9%0.8%75.3%12
24.3%0.4%75.3%13
24.3%0.4%75.3%14
Compiler

Compiled 35 to 18 computations (48.6% saved)

sample1.6s (15.9%)

Results
1.5s8256×body128valid
Compiler

Compiled 98 to 49 computations (50% saved)

simplify77.0ms (0.8%)

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.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.4b
(/.f32 (/.f32 1 s) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)) 2)))
0.3b
(/.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)

localize38.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
0.0b
(+.f32 1 (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.2b
(/.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)))))

series185.0ms (1.9%)

Counts
4 → 96
Calls

4 calls:

135.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)))))
27.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))))
12.0ms
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
11.0ms
(+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))

rewrite70.0ms (0.7%)

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)))))
15.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))))
10.0ms
(exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s))
6.0ms
(+.f32 1 (exp.f32 (/.f32 (neg.f32 (fabs.f32 x)) s)))

simplify135.0ms (1.4%)

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

prune581.0ms (5.9%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New4925497
Fresh101
Picked101
Done000
Total4945499
Error
0.0b
Counts
499 → 5
Alt Table
StatusErrorProgram
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))))
0.2b
(/.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)))))
27.3b
(fma.f32 (/.f32 (*.f32 x x) (pow.f32 s 3)) -1/16 (/.f32 1/4 s))
0.8b
(exp.f32 (log.f32 (/.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.2b
(/.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)))))
Compiler

Compiled 17572 to 5388 computations (69.3% saved)

localize57.0ms (0.6%)

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
(pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)
0.2b
(/.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)))))

series248.0ms (2.5%)

Counts
3 → 40
Calls

3 calls:

190.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)))))
41.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))))
17.0ms
(pow.f32 (exp.f32 (*.f32 -1 (/.f32 (fabs.f32 x) s))) 2)

rewrite33.0ms (0.3%)

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:

17.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)))))
9.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)

simplify114.0ms (1.1%)

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 → 144
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01754153
14503512
215963343
346483343
449613343

prune322.0ms (3.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2441245
Fresh224
Picked011
Done000
Total2464250
Error
0.0b
Counts
250 → 4
Alt Table
StatusErrorProgram
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))))
0.2b
(/.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.3b
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
0.8b
(exp.f32 (log.f32 (/.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 9675 to 4728 computations (51.1% saved)

localize47.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)
0.1b
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.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 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s)))

series385.0ms (3.9%)

Counts
4 → 96
Calls

4 calls:

211.0ms
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
92.0ms
(*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s)))
53.0ms
(fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)
29.0ms
(pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)

rewrite32.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
29×add-sqr-sqrt_binary32
26×pow-pow_binary32
25×exp-prod_binary32
24×times-frac_binary32
24×*-un-lft-identity_binary32
Counts
4 → 104
Calls

4 calls:

10.0ms
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
9.0ms
(*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s)))
5.0ms
(pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)
0.0ms
(fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s)

simplify159.0ms (1.6%)

Algorithm
egg-herbie
Rules
650×times-frac_binary32
408×associate-/r*_binary32
394×associate-/l*_binary32
341×fma-def_binary32
182×distribute-rgt-in_binary32
Counts
200 → 204
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02366260
15545443
214855383
346665383
449325383

prune255.0ms (2.6%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New2040204
Fresh022
Picked011
Done011
Total2044208
Error
0.0b
Counts
208 → 4
Alt Table
StatusErrorProgram
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))))
0.2b
(/.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.3b
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
0.8b
(exp.f32 (log.f32 (/.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 7092 to 2615 computations (63.1% saved)

localize42.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))
0.1b
(fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s))
0.1b
(-.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)))
0.6b
(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))))

series2.0s (19.9%)

Counts
4 → 80
Calls

4 calls:

713.0ms
(fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s))
656.0ms
(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))))
596.0ms
(-.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)))
10.0ms
(exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))

rewrite199.0ms (2%)

Algorithm
rewrite-expression-head
Rules
399×add-sqr-sqrt_binary32
355×*-un-lft-identity_binary32
347×add-cube-cbrt_binary32
336×times-frac_binary32
324×prod-diff_binary32
Counts
4 → 500
Calls

4 calls:

22.0ms
(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))))
19.0ms
(-.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)))
6.0ms
(exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))
0.0ms
(fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s))

simplify791.0ms (8%)

Algorithm
egg-herbie
Rules
893×times-frac_binary32
318×fma-neg_binary32
236×exp-prod_binary32
136×fma-udef_binary32
133×exp-sum_binary32
Counts
580 → 611
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
060025504
196821989
2300421113
3508721113

prune908.0ms (9.1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New6083611
Fresh101
Picked101
Done022
Total6105615
Error
0.0b
Counts
615 → 5
Alt Table
StatusErrorProgram
0.7b
(exp.f32 (fma.f32 (fabs.f32 x) (neg.f32 (/.f32 1 s)) (neg.f32 (fma.f32 2 (log1p.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s)))) (log.f32 s)))))
0.3b
(/.f32 1 (*.f32 (fma.f32 s (fma.f32 (exp.f32 (neg.f32 (/.f32 (fabs.f32 x) s))) 2 (pow.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) -2)) s) (exp.f32 (/.f32 (fabs.f32 x) s))))
0.9b
(pow.f32 (E.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))))
0.2b
(/.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
(*.f32 (*.f32 (cbrt.f32 (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))))) (cbrt.f32 (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)))))) (cbrt.f32 (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 38343 to 12313 computations (67.9% saved)

regimes1.5s (15%)

Accuracy

Total 0.1b remaining (66%)

Threshold costs 0.1b (66%)

Counts
267 → 1
Compiler

Compiled 37889 to 21917 computations (42.2% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
*-commutative_binary32
sub-neg_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01643
12343
22743
33043
43143
53043

end106.0ms (1.1%)

Compiler

Compiled 222 to 121 computations (45.5% saved)

Profiling

Loading profile data...