Details

Time bar (total: 3.7s)

analyze103.0ms (2.8%)

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.3s (36.4%)

Results
1.3s8256×body128valid
Compiler

Compiled 70 to 36 computations (48.6% saved)

preprocess33.0ms (0.9%)

Algorithm
egg-herbie
Rules
1068×fma-def_binary32
462×associate-/l*_binary32
340×distribute-rgt-in_binary32
266×associate-/l/_binary32
263×associate-/r*_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02086
16986
220782
348582
4107678
5234160
022
Stop Event
saturated
node limit
Compiler

Compiled 28 to 13 computations (53.6% saved)

simplify36.0ms (1%)

Algorithm
egg-herbie
Rules
505×fma-def_binary32
440×times-frac_binary32
346×distribute-rgt-in_binary32
272×distribute-rgt-out_binary32
271×distribute-lft-in_binary32
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01243
13843
210741
324641
451839
5107530
6343029
7494629
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
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)))))
0.3b
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
Compiler

Compiled 142 to 78 computations (45.1% saved)

localize42.0ms (1.1%)

Local error

Found 4 expressions with local error:

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

series123.0ms (3.3%)

Counts
4 → 80
Calls

24 calls:

15.0ms
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
x
-inf
14.0ms
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
x
inf
13.0ms
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
x
0
12.0ms
(/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2)))
x
-inf
12.0ms
(/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2)))
x
inf

rewrite61.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
678×prod-diff_binary32
169×add-sqr-sqrt_binary32
164×*-un-lft-identity_binary32
164×pow1_binary32
158×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01571
133155
2497055
01573
Stop Event
saturated
node limit
Counts
4 → 98

simplify67.0ms (1.8%)

Algorithm
egg-herbie
Rules
386×times-frac_binary32
371×fma-neg_binary32
370×unswap-sqr_binary32
359×distribute-rgt-neg-in_binary32
306×distribute-neg-frac_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0751764
12081716
26241688
330711654
Stop Event
node limit
Counts
178 → 110

prune90.0ms (2.4%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1073110
Fresh011
Picked011
Done000
Total1075112
Error
0.3b
Counts
112 → 5
Alt Table
StatusErrorProgram
12.8b
(/.f32 (/.f32 1 (+.f32 (pow.f32 (E.f32) (/.f32 x s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
0.3b
(/.f32 1 (fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))))
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)))))
0.3b
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
Compiler

Compiled 2631 to 1313 computations (50.1% saved)

localize33.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2)
0.0b
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))
0.1b
(exp.f32 (/.f32 (fabs.f32 x) s))
0.2b
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))

series69.0ms (1.9%)

Counts
3 → 40
Calls

18 calls:

7.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))
x
inf
7.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))
x
-inf
7.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))
s
-inf
6.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))
x
0
5.0ms
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))
x
-inf

rewrite52.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
382×prod-diff_binary32
187×expm1-udef_binary32
187×log1p-udef_binary32
154×log-pow_binary32
142×fma-def_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01047
121939
2301439
01047
Stop Event
saturated
node limit
Counts
3 → 94

simplify33.0ms (0.9%)

Algorithm
egg-herbie
Rules
831×fma-def_binary32
674×associate-*l/_binary32
357×associate-/l/_binary32
285×associate-/r/_binary32
256×unswap-sqr_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061870
1166826
2467820
31793800
Stop Event
node limit
Counts
134 → 117

prune167.0ms (4.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1674171
Fresh123
Picked101
Done011
Total1697176
Error
0.2b
Counts
176 → 7
Alt Table
StatusErrorProgram
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
0.8b
(/.f32 1 (fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (+.f32 (fma.f32 (/.f32 1/2 s) (/.f32 (*.f32 x x) s) 1) (fma.f32 1/6 (pow.f32 (/.f32 (fabs.f32 x) s) 3) (/.f32 (fabs.f32 x) s))))))
12.8b
(/.f32 (/.f32 1 (+.f32 (pow.f32 (E.f32) (/.f32 x s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
0.9b
(/.f32 1 (exp.f32 (log.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))))
0.4b
(/.f32 1 (pow.f32 (sqrt.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))) 2))
0.3b
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
0.3b
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))))
Compiler

Compiled 4183 to 1781 computations (57.4% saved)

localize33.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f32 (exp.f32 (/.f32 x s)) 2)
0.0b
(exp.f32 (/.f32 x s))
0.1b
(/.f32 s (exp.f32 (/.f32 x s)))
0.2b
(*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))

series29.0ms (0.8%)

Counts
4 → 72
Calls

24 calls:

3.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
x
-inf
3.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
x
inf
2.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
s
0
2.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
s
inf
2.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
s
-inf

rewrite60.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
527×log-prod_binary32
329×prod-diff_binary32
187×expm1-udef_binary32
187×log1p-udef_binary32
155×log-pow_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0936
120336
2287936
0936
Stop Event
saturated
node limit
Counts
4 → 146

simplify34.0ms (0.9%)

Algorithm
egg-herbie
Rules
877×fma-def_binary32
555×associate-/l*_binary32
358×associate-*l/_binary32
331×associate-/r*_binary32
255×associate-*r/_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
043936
1127912
2338894
31161870
Stop Event
node limit
Counts
218 → 176

prune379.0ms (10.3%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2024206
Fresh325
Picked101
Done011
Total2067213
Error
0.1b
Counts
213 → 7
Alt Table
StatusErrorProgram
12.8b
(/.f32 (/.f32 1 (+.f32 (pow.f32 (E.f32) (/.f32 x s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
0.3b
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
0.5b
(/.f32 1 (+.f32 (exp.f32 (-.f32 (log.f32 s) (/.f32 x s))) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))))
0.3b
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
0.3b
(/.f32 1 (+.f32 (/.f32 s (pow.f32 (pow.f32 (exp.f32 (/.f32 x s)) 3) 1/3)) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))))
4.0b
(/.f32 1 (+.f32 (/.f32 s (pow.f32 (exp.f32 x) (/.f32 1 s))) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))))
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
Compiler

Compiled 5038 to 2242 computations (55.5% saved)

localize35.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
0.0b
(exp.f32 (/.f32 x s))
0.1b
(/.f32 s (exp.f32 (/.f32 x s)))
0.2b
(fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))

series67.0ms (1.8%)

Counts
2 → 48
Calls

12 calls:

17.0ms
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
x
inf
16.0ms
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
x
-inf
9.0ms
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
s
0
6.0ms
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
s
inf
6.0ms
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
s
-inf

rewrite51.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
336×fma-def_binary32
227×expm1-udef_binary32
227×log1p-udef_binary32
200×fma-neg_binary32
192×log-pow_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01240
125738
2350136
01240
Stop Event
saturated
node limit
Counts
2 → 52

simplify34.0ms (0.9%)

Algorithm
egg-herbie
Rules
672×associate-/r*_binary32
520×fma-def_binary32
402×associate-*l/_binary32
226×cancel-sign-sub-inv_binary32
184×associate-/r/_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
062900
1170900
2444876
31554864
Stop Event
node limit
Counts
100 → 72

prune212.0ms (5.8%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1740174
Fresh055
Picked011
Done011
Total1747181
Error
0.1b
Counts
181 → 7
Alt Table
StatusErrorProgram
12.8b
(/.f32 (/.f32 1 (+.f32 (pow.f32 (E.f32) (/.f32 x s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
0.3b
(/.f32 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
0.5b
(/.f32 1 (+.f32 (exp.f32 (-.f32 (log.f32 s) (/.f32 x s))) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))))
0.3b
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
0.3b
(/.f32 1 (+.f32 (/.f32 s (pow.f32 (pow.f32 (exp.f32 (/.f32 x s)) 3) 1/3)) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))))
4.0b
(/.f32 1 (+.f32 (/.f32 s (pow.f32 (exp.f32 x) (/.f32 1 s))) (*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))))
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
Compiler

Compiled 4144 to 1821 computations (56.1% saved)

regimes398.0ms (10.8%)

Accuracy

Total 0.0b remaining (26.6%)

Threshold costs 0.0b (26.6%)

Counts
77 → 1
Compiler

Compiled 7394 to 4757 computations (35.7% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01124
11224
Stop Event
saturated

end93.0ms (2.5%)

Stop Event
fuel
Compiler

Compiled 174 to 113 computations (35.1% saved)

Profiling

Loading profile data...