Details

Time bar (total: 3.9s)

analyze99.0ms (2.6%)

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

Results
1.3s8256×body128valid
Compiler

Compiled 47 to 37 computations (21.3% saved)

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

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

localize22.0ms (0.6%)

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

series30.0ms (0.8%)

Counts
3 → 72
Calls

3 calls:

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

rewrite48.0ms (1.2%)

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:

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

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

prune51.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 (exp.f32 (/.f32 (neg.f32 x) s))))
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)
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)))))

series66.0ms (1.7%)

Counts
4 → 72
Calls

4 calls:

35.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))
14.0ms
(/.f32 1 (exp.f32 (/.f32 x s)))
13.0ms
(+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s))))
4.0ms
(exp.f32 (/.f32 x s))

rewrite51.0ms (1.3%)

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:

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

simplify37.0ms (0.9%)

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

prune184.0ms (4.8%)

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.2b
(/.f32 1 (+.f32 1 (pow.f32 (pow.f32 (exp.f32 (/.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.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)
Compiler

Compiled 2641 to 1540 computations (41.7% saved)

localize24.0ms (0.6%)

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

series484.0ms (12.5%)

Counts
2 → 48
Calls

2 calls:

250.0ms
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
234.0ms
(log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))

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

simplify35.0ms (0.9%)

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

prune50.0ms (1.3%)

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.2b
(/.f32 1 (+.f32 1 (pow.f32 (pow.f32 (exp.f32 (/.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.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)
Compiler

Compiled 1461 to 838 computations (42.6% saved)

localize32.0ms (0.8%)

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

series444.0ms (11.5%)

Counts
3 → 72
Calls

3 calls:

210.0ms
(pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3)
202.0ms
(cbrt.f32 (exp.f32 (/.f32 x s)))
31.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) 3))))

rewrite50.0ms (1.3%)

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

simplify35.0ms (0.9%)

Algorithm
egg-herbie
Rules
735×associate-*l/_binary32
629×associate-/r*_binary32
289×cancel-sign-sub-inv_binary32
221×associate-/l/_binary32
209×associate-/r/_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0551041
11561011
2431933
31777849
Stop Event
node limit
Counts
154 → 105

prune149.0ms (3.9%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1401141
Fresh033
Picked101
Done011
Total1415146
Error
0.0b
Counts
146 → 5
Alt Table
StatusErrorProgram
0.2b
(/.f32 1 (+.f32 1 (pow.f32 (pow.f32 (exp.f32 (/.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 (*.f32 (cbrt.f32 (exp.f32 (/.f32 x s))) (exp.f32 (*.f32 2/3 (/.f32 x s)))))))
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)
Compiler

Compiled 2503 to 1600 computations (36.1% saved)

regimes460.0ms (11.9%)

Accuracy

Total 0.0b remaining (54.4%)

Threshold costs 0.0b (54.4%)

Counts
85 → 1
Compiler

Compiled 8692 to 7187 computations (17.3% 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

end68.0ms (1.8%)

Compiler

Compiled 92 to 75 computations (18.5% saved)

Profiling

Loading profile data...