Details

Time bar (total: 4.1s)

analyze96.0ms (2.4%)

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.2s (29.7%)

Results
1.2s8256×body128valid
Compiler

Compiled 36 to 28 computations (22.2% saved)

preprocess34.0ms (0.8%)

Algorithm
egg-herbie
Rules
434×fma-def_binary32
401×associate-/l*_binary32
298×associate-/l/_binary32
270×associate-/r*_binary32
208×unswap-sqr_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01428
12728
24528
36928
49628
516028
630628
766528
8150328
9405028
022
Stop Event
saturated
node limit
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify20.0ms (0.5%)

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.5%)

Local error

Found 3 expressions with local error:

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

series31.0ms (0.8%)

Counts
3 → 72
Calls

18 calls:

4.0ms
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
s
0
4.0ms
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
x
-inf
4.0ms
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
x
inf
3.0ms
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
s
inf
2.0ms
(/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s))))
x
0

rewrite48.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
822×log1p-expm1-u_binary32
822×expm1-log1p-u_binary32
97×add-sqr-sqrt_binary32
94×*-un-lft-identity_binary32
94×pow1_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0933
119227
2267127
0933
Stop Event
saturated
node limit
Counts
3 → 83

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
192×associate-/r/_binary32
Iterations

Useful iterations: 3 (0.0ms)

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

prune52.0ms (1.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1062108
Fresh000
Picked011
Done000
Total1063109
Error
0.0b
Counts
109 → 3
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)))))
24.1b
(fma.f32 (/.f32 x s) 1/4 (fma.f32 (pow.f32 (/.f32 x s) 3) -1/48 1/2))
Compiler

Compiled 1528 to 909 computations (40.5% saved)

localize22.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series70.0ms (1.7%)

Counts
4 → 72
Calls

24 calls:

10.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))
x
inf
9.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))
x
-inf
7.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))
s
0
4.0ms
(/.f32 1 (+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s)))))
s
inf
3.0ms
(+.f32 1 (/.f32 1 (exp.f32 (/.f32 x s))))
x
-inf

rewrite54.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
119539
2259439
0942
Stop Event
saturated
node limit
Counts
4 → 135

simplify54.0ms (1.3%)

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
31633978
Stop Event
node limit
Counts
207 → 163

prune148.0ms (3.6%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1594163
Fresh101
Picked101
Done101
Total1624166
Error
0.0b
Counts
166 → 4
Alt Table
StatusErrorProgram
0.1b
(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 (pow.f32 (exp.f32 (*.f32 -3 (/.f32 x s))) 1/3)))
5.8b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (exp.f32 x) (/.f32 1 s)))))
Compiler

Compiled 2600 to 1516 computations (41.7% saved)

localize22.0ms (0.6%)

Local error

Found 3 expressions with local error:

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

series534.0ms (13.1%)

Counts
2 → 48
Calls

12 calls:

94.0ms
(log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))
x
-inf
87.0ms
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
s
0
84.0ms
(log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))
s
0
83.0ms
(log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))
x
inf
82.0ms
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
x
inf

rewrite41.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
708×pow1_binary32
650×expm1-log1p-u_binary32
649×log1p-expm1-u_binary32
91×add-sqr-sqrt_binary32
89×*-un-lft-identity_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0924
118117
2244617
0924
Stop Event
saturated
node limit
Counts
2 → 59

simplify76.0ms (1.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

prune71.0ms (1.7%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1061107
Fresh123
Picked011
Done000
Total1074111
Error
0.0b
Counts
111 → 4
Alt Table
StatusErrorProgram
0.1b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s)))) 3) 1/3)
0.1b
(exp.f32 (neg.f32 (log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))))
0.0b
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
5.8b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (exp.f32 x) (/.f32 1 s)))))
Compiler

Compiled 1427 to 802 computations (43.8% saved)

localize25.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(exp.f32 (/.f32 x s))
0.0b
(exp.f32 (neg.f32 (log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))))
0.0b
(/.f32 1 (exp.f32 (/.f32 x s)))
1.7b
(log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))

series695.0ms (17.1%)

Counts
2 → 48
Calls

12 calls:

139.0ms
(log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))
x
inf
111.0ms
(log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))
s
0
111.0ms
(exp.f32 (neg.f32 (log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))))
x
-inf
109.0ms
(exp.f32 (neg.f32 (log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))))
x
inf
102.0ms
(log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))
x
-inf

rewrite41.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
776×expm1-log1p-u_binary32
775×log1p-expm1-u_binary32
95×add-sqr-sqrt_binary32
95×pow1_binary32
93×*-un-lft-identity_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01024
119721
2241721
01026
Stop Event
saturated
node limit
Counts
2 → 59

simplify37.0ms (0.9%)

Algorithm
egg-herbie
Rules
639×fma-def_binary32
498×cancel-sign-sub-inv_binary32
358×associate-/l/_binary32
261×fma-neg_binary32
229×distribute-rgt-neg-in_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0541044
1158750
2500738
32163678
Stop Event
node limit
Counts
107 → 77

prune133.0ms (3.3%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New1510151
Fresh022
Picked011
Done011
Total1514155
Error
0.0b
Counts
155 → 4
Alt Table
StatusErrorProgram
0.1b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (exp.f32 (/.f32 (neg.f32 x) s)))) 3) 1/3)
0.1b
(exp.f32 (neg.f32 (log1p.f32 (/.f32 1 (exp.f32 (/.f32 x s))))))
0.0b
(exp.f32 (neg.f32 (log1p.f32 (exp.f32 (/.f32 (neg.f32 x) s)))))
5.8b
(/.f32 1 (+.f32 1 (/.f32 1 (pow.f32 (exp.f32 x) (/.f32 1 s)))))
Compiler

Compiled 2191 to 1176 computations (46.3% saved)

regimes435.0ms (10.7%)

Accuracy

Total 0.0b remaining (35.5%)

Threshold costs 0.0b (35.5%)

Counts
71 → 1
Compiler

Compiled 7064 to 5796 computations (18% 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

end58.0ms (1.4%)

Stop Event
fuel
Compiler

Compiled 70 to 58 computations (17.1% saved)

Profiling

Loading profile data...