Details

Time bar (total: 3.8s)

analyze110.0ms (2.9%)

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.4s (36.1%)

Results
1.3s8256×body128valid
Compiler

Compiled 70 to 36 computations (48.6% saved)

preprocess31.0ms (0.8%)

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)

simplify35.0ms (0.9%)

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)

localize55.0ms (1.5%)

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)

series134.0ms (3.5%)

Counts
4 → 80
Calls

24 calls:

16.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
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
0
14.0ms
(/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2)))
x
inf
13.0ms
(/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2)))
x
-inf

rewrite66.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
678×prod-diff_binary32
165×add-sqr-sqrt_binary32
156×log1p-expm1-u_binary32
156×expm1-log1p-u_binary32
155×add-cbrt-cube_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01571
133155
2494155
Stop Event
node limit
Counts
4 → 98

simplify56.0ms (1.5%)

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

prune94.0ms (2.5%)

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)
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 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)
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)))))
Compiler

Compiled 2631 to 1305 computations (50.4% saved)

localize32.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))))

series74.0ms (2%)

Counts
3 → 40
Calls

18 calls:

9.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) 2) (/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s))))
x
inf
8.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
0
6.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
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))
x
0

rewrite54.0ms (1.4%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01047
121939
2301339
Stop Event
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

prune268.0ms (7.1%)

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
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)
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 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))))
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))))))
Compiler

Compiled 4183 to 1773 computations (57.6% saved)

localize32.0ms (0.8%)

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))

series51.0ms (1.4%)

Counts
4 → 72
Calls

24 calls:

20.0ms
(*.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2))
x
0
3.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
x
-inf
3.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
x
inf
3.0ms
(/.f32 s (exp.f32 (/.f32 x s)))
s
0
2.0ms
(exp.f32 (/.f32 x s))
s
inf

rewrite62.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0936
120336
2288336
Stop Event
node limit
Counts
4 → 146

simplify35.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

prune259.0ms (6.9%)

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
0.3b
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 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))))
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)
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
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))))
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))))
Compiler

Compiled 5038 to 2204 computations (56.3% saved)

localize48.0ms (1.3%)

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))

series78.0ms (2.1%)

Counts
2 → 48
Calls

12 calls:

18.0ms
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 s 2))))
x
-inf
18.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))))
s
0
8.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

rewrite55.0ms (1.5%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01240
125738
2347736
Stop Event
node limit
Counts
2 → 52

simplify36.0ms (1%)

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

prune217.0ms (5.7%)

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
0.3b
(/.f32 1 (+.f32 (/.f32 s (exp.f32 (/.f32 x s))) (fma.f32 s (exp.f32 (/.f32 x s)) (*.f32 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))))
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)
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
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))))
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))))
Compiler

Compiled 4144 to 1808 computations (56.4% saved)

regimes385.0ms (10.2%)

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

end104.0ms (2.8%)

Stop Event
fuel
Compiler

Compiled 174 to 113 computations (35.1% saved)

Profiling

Loading profile data...