Details

Time bar (total: 5.2s)

analyze117.0ms (2.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%0.9%99.1%0
0%0.9%99.1%1
0%0.9%99.1%2
0.4%0.4%99.1%3
0.4%0.4%99.1%4
0.6%0.2%99.1%5
0.6%0.2%99.1%6
0.7%0.1%99.1%7
0.7%0.1%99.1%8
0.8%0.1%99.1%9
0.8%0.1%99.1%10
0.8%0%99.1%11
0.8%0%99.1%12
0.8%0%99.1%13
0.8%0%99.1%14
Compiler

Compiled 32 to 24 computations (25% saved)

sample1.9s (35.8%)

Results
1.7s8256×body128valid
Compiler

Compiled 81 to 61 computations (24.7% saved)

simplify157.0ms (3%)

Algorithm
egg-herbie
Rules
2879×fma-def_binary32
2626×associate-+l+_binary32
362×distribute-rgt-in_binary32
324×associate-+r+_binary32
323×distribute-rgt-out_binary32
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01323
12119
23519
35419
411019
517319
624719
740519
850519
956319
1061319
1163619
1267219
1378119
1495919
15121819
16155019
17155619
18154819
19189619
20211319
21220819
22230719
23227519
24227519
25227519
26426519
27426519
28426519
29426519
30561919

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.2b
(+.f32 1 (*.f32 v (log.f32 (+.f32 u (*.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)))))))
Compiler

Compiled 94 to 70 computations (25.5% saved)

localize32.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.1b
(exp.f32 (/.f32 -2 v))
0.1b
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))

series187.0ms (3.6%)

Counts
4 → 80
Calls

4 calls:

126.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
52.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
8.0ms
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
2.0ms
(exp.f32 (/.f32 -2 v))

rewrite90.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
481×log-prod_binary32
268×prod-diff_binary32
198×expm1-udef_binary32
197×log1p-udef_binary32
172×log-pow_binary32
Counts
4 → 110
Calls

4 calls:

88.0ms
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
88.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
88.0ms
(exp.f32 (/.f32 -2 v))
88.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01153
122453
2261853
3487253
4498853
000
100

simplify80.0ms (1.5%)

Algorithm
egg-herbie
Rules
629×cancel-sign-sub-inv_binary32
438×sub-neg_binary32
254×fma-def_binary32
231×+-commutative_binary32
225×fma-neg_binary32
Counts
190 → 197
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02633048
19122982
236302942
351572942

prune181.0ms (3.5%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1925197
Fresh101
Picked011
Done000
Total1936199
Error
0.0b
Counts
199 → 6
Alt Table
StatusErrorProgram
0.2b
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
29.7b
(-.f32 (fma.f32 1/3 (/.f32 v (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3)) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (fma.f32 1/2 (*.f32 v (*.f32 u u)) (+.f32 1 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))))))
29.1b
(-.f32 (fma.f32 (/.f32 u (pow.f32 v 3)) 2/3 (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 (/.f32 u (*.f32 v v)) 4/3 (fma.f32 8/3 (/.f32 (pow.f32 u 3) (*.f32 v v)) (*.f32 (pow.f32 (/.f32 u v) 3) 8))))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) (+.f32 1 (fma.f32 2 (/.f32 (*.f32 u u) v) (fma.f32 (*.f32 (/.f32 u v) (/.f32 u v)) 4 (*.f32 (/.f32 (*.f32 u u) (pow.f32 v 3)) 14/3))))))
0.3b
(/.f32 (fma.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) -1) (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) -1))
1.0b
(+.f32 (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))) (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))))
Compiler

Compiled 5824 to 4218 computations (27.6% saved)

localize34.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(exp.f32 (/.f32 -2 v))
0.1b
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
0.1b
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
0.2b
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))

series211.0ms (4%)

Counts
2 → 48
Calls

2 calls:

161.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
49.0ms
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))

rewrite87.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
523×prod-diff_binary32
362×fma-udef_binary32
331×fma-def_binary32
222×expm1-udef_binary32
221×log1p-udef_binary32
Counts
2 → 66
Calls

2 calls:

85.0ms
(+.f32 1 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))
85.0ms
(*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01239
125137
2304337
3494837
4492737
000
100

simplify108.0ms (2.1%)

Algorithm
egg-herbie
Rules
460×cancel-sign-sub-inv_binary32
439×fma-neg_binary32
315×sub-neg_binary32
229×neg-mul-1_binary32
225×neg-sub0_binary32
Counts
114 → 134
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01822505
16352422
225302227
345812207
448462207
550232207

prune267.0ms (5.1%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New2233226
Fresh224
Picked101
Done011
Total2266232
Error
0.0b
Counts
232 → 6
Alt Table
StatusErrorProgram
29.7b
(-.f32 (fma.f32 1/3 (/.f32 v (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3)) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (fma.f32 1/2 (*.f32 v (*.f32 u u)) (+.f32 1 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))))))
29.1b
(-.f32 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (*.f32 (/.f32 (pow.f32 u 3) (*.f32 v v)) (+.f32 8/3 (/.f32 8 v)))))) (+.f32 (fma.f32 2 (/.f32 (*.f32 u u) v) (*.f32 (*.f32 (/.f32 u v) (/.f32 u v)) (+.f32 4 (/.f32 14/3 v)))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 1)))
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.2b
(fma.f32 (cbrt.f32 (*.f32 v v)) (*.f32 (cbrt.f32 v) (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)
0.3b
(/.f32 (+.f32 1 (pow.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 3)) (fma.f32 (*.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) -1) 1))
1.0b
(+.f32 (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))) (log.f32 (sqrt.f32 (exp.f32 (fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)))))
Compiler

Compiled 7255 to 5304 computations (26.9% saved)

localize55.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
0.1b
(cbrt.f32 v)
0.3b
(*.f32 (cbrt.f32 v) (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
12.7b
(cbrt.f32 (*.f32 v v))

series225.0ms (4.3%)

Counts
3 → 48
Calls

3 calls:

172.0ms
(*.f32 (cbrt.f32 v) (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
29.0ms
(cbrt.f32 v)
24.0ms
(cbrt.f32 (*.f32 v v))

rewrite60.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
589×log-prod_binary32
229×expm1-udef_binary32
228×log1p-udef_binary32
209×log-pow_binary32
205×prod-diff_binary32
Counts
3 → 76
Calls

3 calls:

59.0ms
(cbrt.f32 v)
59.0ms
(*.f32 (cbrt.f32 v) (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
59.0ms
(cbrt.f32 (*.f32 v v))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01429
127529
2306629
3549529
000
100

simplify64.0ms (1.2%)

Algorithm
egg-herbie
Rules
740×cancel-sign-sub-inv_binary32
394×fma-neg_binary32
303×fma-def_binary32
257×sub-neg_binary32
254×associate-*r*_binary32
Counts
124 → 121
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02421942
18161835
232951822
352421822

prune206.0ms (3.9%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1812183
Fresh224
Picked101
Done011
Total1845189
Error
0.0b
Counts
189 → 5
Alt Table
StatusErrorProgram
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.2b
(fma.f32 (cbrt.f32 (*.f32 v v)) (*.f32 (cbrt.f32 v) (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))) 1)
29.7b
(-.f32 (fma.f32 1/3 (/.f32 v (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3)) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (fma.f32 1/2 (*.f32 v (*.f32 u u)) (+.f32 1 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))))))
29.1b
(-.f32 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (*.f32 (/.f32 (pow.f32 u 3) (*.f32 v v)) (+.f32 8/3 (/.f32 8 v)))))) (+.f32 (fma.f32 2 (/.f32 (*.f32 u u) v) (*.f32 (*.f32 (/.f32 u v) (/.f32 u v)) (+.f32 4 (/.f32 14/3 v)))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 1)))
0.2b
(fma.f32 (pow.f32 v 2/3) (*.f32 (cbrt.f32 v) (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)
Compiler

Compiled 7107 to 4687 computations (34.1% saved)

localize48.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
0.1b
(cbrt.f32 v)
0.3b
(*.f32 (cbrt.f32 v) (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)))
3.1b
(pow.f32 v 2/3)

series22.0ms (0.4%)

Counts
1 → 12
Calls

1 calls:

22.0ms
(pow.f32 v 2/3)

rewrite69.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
534×log1p-udef_binary32
318×log1p-expm1-u_binary32
318×expm1-log1p-u_binary32
286×add-cbrt-cube_binary32
280×add-log-exp_binary32
Counts
1 → 25
Calls

1 calls:

68.0ms
(pow.f32 v 2/3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048
1866
28356
349746
456496
000
100

simplify47.0ms (0.9%)

Algorithm
egg-herbie
Rules
742×exp-sum_binary32
410×fma-neg_binary32
401×distribute-rgt-in_binary32
355×distribute-lft-in_binary32
327×fma-def_binary32
Counts
37 → 27
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
014112
131112
26092
314880
435180
5116780
6387680
7512180

prune213.0ms (4.1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1800180
Fresh033
Picked011
Done011
Total1805185
Error
0.0b
Counts
185 → 5
Alt Table
StatusErrorProgram
0.2b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.2b
(fma.f32 (cbrt.f32 (*.f32 v v)) (*.f32 (cbrt.f32 v) (*.f32 2 (log.f32 (sqrt.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))))) 1)
29.7b
(-.f32 (fma.f32 1/3 (/.f32 v (pow.f32 (/.f32 (exp.f32 (/.f32 -2 v)) u) 3)) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (*.f32 u u)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (fma.f32 1/2 (*.f32 v (*.f32 u u)) (+.f32 1 (fma.f32 1/3 (*.f32 v (pow.f32 u 3)) (fma.f32 v u (fma.f32 1/2 (/.f32 (*.f32 v (*.f32 u u)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))))))))
29.1b
(-.f32 (fma.f32 2/3 (/.f32 u (pow.f32 v 3)) (fma.f32 2 (+.f32 u (/.f32 u v)) (fma.f32 4/3 (/.f32 u (*.f32 v v)) (*.f32 (/.f32 (pow.f32 u 3) (*.f32 v v)) (+.f32 8/3 (/.f32 8 v)))))) (+.f32 (fma.f32 2 (/.f32 (*.f32 u u) v) (*.f32 (*.f32 (/.f32 u v) (/.f32 u v)) (+.f32 4 (/.f32 14/3 v)))) (fma.f32 4 (/.f32 (pow.f32 u 4) (pow.f32 v 3)) 1)))
0.2b
(fma.f32 (pow.f32 v 2/3) (*.f32 (cbrt.f32 v) (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))) 1)
Compiler

Compiled 6705 to 4885 computations (27.1% saved)

regimes673.0ms (12.8%)

Accuracy

Total 0.1b remaining (72.3%)

Threshold costs 0.1b (72.3%)

Counts
134 → 1
Compiler

Compiled 17708 to 12880 computations (27.3% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
sub-neg_binary32
*-commutative_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01119
11519
21919
32119
42219
52119

end126.0ms (2.4%)

Compiler

Compiled 247 to 168 computations (32% saved)

Profiling

Loading profile data...