Details

Time bar (total: 4.9s)

analyze100.0ms (2%)

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 (27.4%)

Results
1.3s8256×body128valid
Compiler

Compiled 70 to 36 computations (48.6% saved)

preprocess32.0ms (0.7%)

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)

simplify34.0ms (0.7%)

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

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

localize50.0ms (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)

series150.0ms (3%)

Counts
4 → 80
Calls

24 calls:

22.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
17.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
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 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2)))
x
-inf
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

rewrite61.0ms (1.2%)

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

simplify52.0ms (1.1%)

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

prune89.0ms (1.8%)

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

Compiled 2631 to 1305 computations (50.4% saved)

localize32.0ms (0.6%)

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

series77.0ms (1.6%)

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
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
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
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))
x
inf
6.0ms
(/.f32 s (exp.f32 (/.f32 (fabs.f32 x) s)))
x
-inf

rewrite52.0ms (1.1%)

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

simplify35.0ms (0.7%)

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

prune221.0ms (4.5%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1683171
Fresh123
Picked101
Done011
Total1706176
Error
0.2b
Counts
176 → 6
Alt Table
StatusErrorProgram
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))))))
0.3b
(/.f32 1 (expm1.f32 (log1p.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))
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 (/.f32 1 (+.f32 (exp.f32 (/.f32 (fabs.f32 x) s)) (+.f32 (exp.f32 (/.f32 (fabs.f32 x) (neg.f32 s))) 2))) s)
Compiler

Compiled 4145 to 1751 computations (57.8% saved)

localize43.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))))
0.1b
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))
0.1b
(/.f32 s (exp.f32 (/.f32 x s)))
2.6b
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))

series556.0ms (11.3%)

Counts
4 → 84
Calls

24 calls:

226.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))
x
inf
198.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))
x
-inf
17.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))
s
0
14.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s))))
s
0
8.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (/.f32 s (exp.f32 (/.f32 x s)))))
x
0

rewrite65.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
424×prod-diff_binary32
200×expm1-udef_binary32
200×log1p-udef_binary32
176×log-pow_binary32
155×fma-def_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01174
121974
2292574
Stop Event
node limit
Counts
4 → 139

simplify59.0ms (1.2%)

Algorithm
egg-herbie
Rules
618×associate-/l*_binary32
284×cancel-sign-sub-inv_binary32
272×fma-def_binary32
233×associate-+r+_binary32
197×sub-neg_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02182542
17132502
228932433
Stop Event
node limit
Counts
223 → 159

prune246.0ms (5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1563159
Fresh134
Picked101
Done011
Total1587165
Error
0.1b
Counts
165 → 7
Alt Table
StatusErrorProgram
0.4b
(/.f32 1 (expm1.f32 (pow.f32 (sqrt.f32 (log1p.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.6b
(/.f32 1 (expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (exp.f32 (-.f32 (log.f32 s) (/.f32 x 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)
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
0.3b
(/.f32 1 (expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s))))))))
Compiler

Compiled 5111 to 2696 computations (47.3% saved)

localize63.0ms (1.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s)))))
0.2b
(*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s))))
0.5b
(pow.f32 (cbrt.f32 s) 2)
2.6b
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s))))))

series513.0ms (10.4%)

Counts
4 → 72
Calls

21 calls:

201.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s))))))
x
-inf
191.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s))))))
x
inf
17.0ms
(pow.f32 (cbrt.f32 s) 2)
s
-inf
17.0ms
(fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s)))))
s
-inf
13.0ms
(log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s))))))
s
0

rewrite63.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
568×prod-diff_binary32
144×add-sqr-sqrt_binary32
138×expm1-log1p-u_binary32
137×log1p-expm1-u_binary32
135×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01559
132459
2391159
Stop Event
node limit
Counts
4 → 111

simplify56.0ms (1.1%)

Algorithm
egg-herbie
Rules
618×associate-/l*_binary32
284×cancel-sign-sub-inv_binary32
272×fma-def_binary32
233×associate-+r+_binary32
197×sub-neg_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02182146
17132112
228932043
Stop Event
node limit
Counts
183 → 160

prune205.0ms (4.2%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1600160
Fresh055
Picked011
Done011
Total1607167
Error
0.1b
Counts
167 → 7
Alt Table
StatusErrorProgram
0.4b
(/.f32 1 (expm1.f32 (pow.f32 (sqrt.f32 (log1p.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.6b
(/.f32 1 (expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (exp.f32 (-.f32 (log.f32 s) (/.f32 x 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)
27.1b
(fma.f32 (/.f32 x (/.f32 (pow.f32 s 3) x)) -1/16 (/.f32 1/4 s))
0.3b
(/.f32 1 (expm1.f32 (log1p.f32 (fma.f32 s (+.f32 (exp.f32 (/.f32 x s)) 2) (*.f32 (/.f32 (pow.f32 (cbrt.f32 s) 2) 1) (/.f32 (cbrt.f32 s) (exp.f32 (/.f32 x s))))))))
Compiler

Compiled 5077 to 2733 computations (46.2% saved)

regimes602.0ms (12.3%)

Accuracy

Total 0.0b remaining (32.6%)

Threshold costs 0.0b (32.6%)

Counts
127 → 1
Compiler

Compiled 13471 to 8610 computations (36.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
*-commutative_binary32
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01227
11627
Stop Event
saturated

end108.0ms (2.2%)

Stop Event
fuel
Compiler

Compiled 204 to 132 computations (35.3% saved)

Profiling

Loading profile data...