Details

Time bar (total: 3.5s)

analyze94.0ms (2.7%)

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 18 to 14 computations (22.2% saved)

sample1.3s (38.5%)

Results
1.3s8256×body128valid
Compiler

Compiled 47 to 37 computations (21.3% saved)

simplify19.0ms (0.6%)

Algorithm
egg-herbie
Rules
518×unswap-sqr_binary32
340×times-frac_binary32
331×associate-*l*_binary32
260×associate-*r*_binary32
208×fma-def_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
11714
22714
34014
45414
58814
616214
734414
877314
9261614
Stop Event
node limit
Counts
1 → 1

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.1b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.1b
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
Compiler

Compiled 33 to 27 computations (18.2% saved)

localize23.0ms (0.7%)

Local error

Found 3 expressions with local error:

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

series28.0ms (0.8%)

Counts
3 → 72
Calls

3 calls:

18.0ms
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
5.0ms
(+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s)))
4.0ms
(exp.f32 (/.f32 (neg.f32 x) s))

rewrite45.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
822×log1p-expm1-u_binary32
822×expm1-log1p-u_binary32
96×prod-diff_binary32
95×add-sqr-sqrt_binary32
88×add-cbrt-cube_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0933
119327
2265927
Stop Event
node limit
Counts
3 → 83
Calls

3 calls:

44.0ms
(+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s)))
44.0ms
(exp.f32 (/.f32 (neg.f32 x) s))
44.0ms
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))

simplify33.0ms (0.9%)

Algorithm
egg-herbie
Rules
727×cancel-sign-sub-inv_binary32
632×fma-def_binary32
551×associate-/r*_binary32
320×fma-neg_binary32
193×associate-/r/_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0451020
1128966
2368918
31574906
Stop Event
node limit
Counts
155 → 108

prune47.0ms (1.3%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1053108
Fresh000
Picked011
Done000
Total1054109
Error
0.0b
Counts
109 → 4
Alt Table
StatusErrorProgram
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))
26.4b
(-.f32 (+.f32 1/2 (*.f32 1/4 (/.f32 x s))) (*.f32 1/48 (/.f32 (pow.f32 x 3) (pow.f32 s 3))))
22.1b
(fma.f32 1/4 (/.f32 x s) 1/2)
0.1b
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
Compiler

Compiled 1552 to 931 computations (40% saved)

localize22.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series64.0ms (1.8%)

Counts
4 → 72
Calls

4 calls:

32.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))
15.0ms
(+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s))))
13.0ms
(/.f32 1 (exp.f32 (/.f32 x s)))
4.0ms
(exp.f32 (/.f32 x s))

rewrite54.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
452×log-prod_binary32
168×expm1-udef_binary32
168×log1p-udef_binary32
166×fma-def_binary32
158×pow3_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0939
119639
2258339
Stop Event
node limit
Counts
4 → 135
Calls

4 calls:

52.0ms
(/.f32 1 (exp.f32 (/.f32 x s)))
52.0ms
(+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s))))
52.0ms
(exp.f32 (/.f32 x s))
52.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))

simplify37.0ms (1.1%)

Algorithm
egg-herbie
Rules
874×fma-def_binary32
727×cancel-sign-sub-inv_binary32
547×associate-/r*_binary32
317×fma-neg_binary32
190×associate-/r/_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0491113
11371053
2393996
31634978
Stop Event
node limit
Counts
207 → 164

prune181.0ms (5.2%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1595164
Fresh202
Picked101
Done101
Total1635168
Error
0.0b
Counts
168 → 5
Alt Table
StatusErrorProgram
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (E.f32) (/.f32 x s)))))
0.2b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s)))) 3) 1/3)
0.0b
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3))))
0.2b
(/.f32 1 (+.f32 1 (pow.f32 (pow.f32 (exp.f32 (/.f32 x s)) -3) 1/3)))
Compiler

Compiled 2641 to 1540 computations (41.7% saved)

localize23.0ms (0.7%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (/.f32 (neg.f32 x) s))
0.1b
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
1.0b
(log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))

series498.0ms (14.3%)

Counts
2 → 48
Calls

2 calls:

256.0ms
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
241.0ms
(log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))

rewrite38.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
650×expm1-log1p-u_binary32
649×log1p-expm1-u_binary32
128×log1p-udef_binary32
91×add-sqr-sqrt_binary32
84×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0924
118117
2246617
Stop Event
node limit
Counts
2 → 59
Calls

2 calls:

37.0ms
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
37.0ms
(log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))

simplify33.0ms (1%)

Algorithm
egg-herbie
Rules
641×fma-def_binary32
498×cancel-sign-sub-inv_binary32
363×associate-/l/_binary32
261×fma-neg_binary32
227×distribute-lft-neg-in_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
055972
1163750
2510738
32194678
Stop Event
node limit
Counts
107 → 78

prune47.0ms (1.4%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1070107
Fresh044
Picked011
Done000
Total1075112
Error
0.0b
Counts
112 → 5
Alt Table
StatusErrorProgram
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (E.f32) (/.f32 x s)))))
0.2b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s)))) 3) 1/3)
0.0b
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3))))
0.2b
(/.f32 1 (+.f32 1 (pow.f32 (pow.f32 (exp.f32 (/.f32 x s)) -3) 1/3)))
Compiler

Compiled 1461 to 838 computations (42.6% saved)

localize31.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (/.f32 x s))
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3))))
0.1b
(pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3)
0.1b
(cbrt.f32 (exp.f32 (/.f32 x s)))

series101.0ms (2.9%)

Counts
3 → 72
Calls

3 calls:

40.0ms
(pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3)
33.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3))))
29.0ms
(cbrt.f32 (exp.f32 (/.f32 x s)))

rewrite49.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
521×log-prod_binary32
198×expm1-udef_binary32
198×log1p-udef_binary32
189×log-pow_binary32
177×fma-def_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01229
125828
2309728
Stop Event
node limit
Counts
3 → 82
Calls

3 calls:

48.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3))))
48.0ms
(pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3)
48.0ms
(cbrt.f32 (exp.f32 (/.f32 x s)))

simplify33.0ms (0.9%)

Algorithm
egg-herbie
Rules
724×associate-*l/_binary32
628×associate-/r*_binary32
289×cancel-sign-sub-inv_binary32
215×associate-/l/_binary32
209×associate-/r/_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
054957
1152927
2422873
31727849
Stop Event
node limit
Counts
154 → 104

prune138.0ms (4%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1391140
Fresh033
Picked101
Done011
Total1405145
Error
0.0b
Counts
145 → 5
Alt Table
StatusErrorProgram
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (E.f32) (/.f32 x s)))))
0.2b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s)))) 3) 1/3)
0.2b
(/.f32 1 (+.f32 1 (pow.f32 (pow.f32 (exp.f32 (/.f32 x s)) -3) 1/3)))
0.1b
(/.f32 1 (+.f32 1 (/.f32 1 (*.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) (exp.f32 (*.f32 2/3 (/.f32 x s)))))))
0.0b
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
Compiler

Compiled 2489 to 1591 computations (36.1% saved)

regimes435.0ms (12.5%)

Accuracy

Total 0.0b remaining (54.4%)

Threshold costs 0.0b (54.4%)

Counts
82 → 1
Compiler

Compiled 8386 to 6927 computations (17.4% saved)

simplify2.0ms (0.1%)

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
0914
11714
22314
32714
42814
Stop Event
saturated

end66.0ms (1.9%)

Compiler

Compiled 92 to 75 computations (18.5% saved)

Profiling

Loading profile data...