Details

Time bar (total: 5.9s)

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

sample2.1s (35%)

Results
1.9s8256×body128valid
Compiler

Compiled 81 to 61 computations (24.7% saved)

simplify156.0ms (2.6%)

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

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
0.1b
(+.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.5%)

Local error

Found 4 expressions with local error:

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

series339.0ms (5.7%)

Counts
4 → 80
Calls

4 calls:

264.0ms
(log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u))
63.0ms
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)) 1)
10.0ms
(fma.f32 (-.f32 1 u) (exp.f32 (/.f32 -2 v)) u)
2.0ms
(exp.f32 (/.f32 -2 v))

rewrite94.0ms (1.6%)

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 → 106
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01153
122453
2261853
3487253
4498853
000
100

simplify79.0ms (1.3%)

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
186 → 194
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02633048
19122982
236302942
351572942

prune234.0ms (3.9%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New1913194
Fresh101
Picked101
Done000
Total1933196
Error
0.0b
Counts
196 → 3
Alt Table
StatusErrorProgram
30.4b
(-.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (fma.f32 v u 1))
30.3b
(-.f32 (+.f32 (*.f32 1/3 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 1 (+.f32 (*.f32 1/3 (*.f32 v (pow.f32 u 3))) (+.f32 (*.f32 v u) (+.f32 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))))
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) (pow.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) 2)) u)) 1)
Compiler

Compiled 5524 to 4034 computations (27% saved)

localize47.0ms (0.8%)

Local error

Found 4 expressions with local error:

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

series334.0ms (5.6%)

Counts
3 → 48
Calls

3 calls:

169.0ms
(log.f32 (fma.f32 (-.f32 1 u) (*.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) (pow.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) 2)) u))
85.0ms
(cbrt.f32 (exp.f32 (/.f32 -2 v)))
79.0ms
(pow.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) 2)

rewrite59.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
513×log-prod_binary32
210×expm1-udef_binary32
210×prod-diff_binary32
209×log1p-udef_binary32
187×log-pow_binary32
Counts
3 → 73
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01434
126432
2279632
3500932
000
100

simplify48.0ms (0.8%)

Algorithm
egg-herbie
Rules
677×fma-def_binary32
625×associate-/l*_binary32
277×cancel-sign-sub-inv_binary32
223×sub-neg_binary32
157×distribute-rgt-in_binary32
Counts
121 → 124
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01711458
15301442
219541350
350941350

prune220.0ms (3.7%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New2180218
Fresh022
Picked011
Done000
Total2183221
Error
0.0b
Counts
221 → 3
Alt Table
StatusErrorProgram
30.4b
(-.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (fma.f32 v u 1))
30.3b
(-.f32 (+.f32 (*.f32 1/3 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 1 (+.f32 (*.f32 1/3 (*.f32 v (pow.f32 u 3))) (+.f32 (*.f32 v u) (+.f32 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))))
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) (pow.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) 2)) u)) 1)
Compiler

Compiled 6351 to 4937 computations (22.3% saved)

localize135.0ms (2.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.6b
(/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))
1.6b
(/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))
1.6b
(/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))
3.6b
(-.f32 (+.f32 (*.f32 1/3 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 1 (+.f32 (*.f32 1/3 (*.f32 v (pow.f32 u 3))) (+.f32 (*.f32 v u) (+.f32 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))))

series275.0ms (4.6%)

Counts
4 → 44
Calls

4 calls:

125.0ms
(-.f32 (+.f32 (*.f32 1/3 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 1 (+.f32 (*.f32 1/3 (*.f32 v (pow.f32 u 3))) (+.f32 (*.f32 v u) (+.f32 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))))
63.0ms
(/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))
62.0ms
(/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))
25.0ms
(/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))

rewrite107.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
432×log1p-expm1-u_binary32
432×expm1-log1p-u_binary32
391×pow1_binary32
287×prod-diff_binary32
150×unpow-prod-down_binary32
Counts
4 → 87
Calls

4 calls:

103.0ms
(/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))
103.0ms
(/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2))
103.0ms
(/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))
103.0ms
(-.f32 (+.f32 (*.f32 1/3 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 1 (+.f32 (*.f32 1/3 (*.f32 v (pow.f32 u 3))) (+.f32 (*.f32 v u) (+.f32 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037188
1905186
24805186
34978186
000
100

simplify70.0ms (1.2%)

Algorithm
egg-herbie
Rules
562×fma-neg_binary32
462×times-frac_binary32
376×associate-/l*_binary32
284×cancel-sign-sub-inv_binary32
232×associate-/r*_binary32
Counts
131 → 129
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01431780
14581740
217401526
347421520
451651520

prune255.0ms (4.3%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New1281129
Fresh101
Picked011
Done011
Total1293132
Error
0.0b
Counts
132 → 3
Alt Table
StatusErrorProgram
30.4b
(fma.f32 u (-.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) v) -1)
30.3b
(-.f32 (+.f32 (*.f32 1/3 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 1 (+.f32 (*.f32 1/3 (*.f32 v (pow.f32 u 3))) (+.f32 (*.f32 v u) (+.f32 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))))
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) (pow.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) 2)) u)) 1)
Compiler

Compiled 13331 to 9208 computations (30.9% saved)

localize25.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

series23.0ms (0.4%)

Counts
3 → 44
Calls

3 calls:

13.0ms
(fma.f32 u (-.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) v) -1)
6.0ms
(-.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) v)
4.0ms
(/.f32 v (exp.f32 (/.f32 -2 v)))

rewrite125.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
728×prod-diff_binary32
506×fma-udef_binary32
397×fma-def_binary32
214×fma-neg_binary32
191×expm1-udef_binary32
Counts
3 → 165
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01037
121437
2268437
3478437
4488637
5494537
000
100

simplify65.0ms (1.1%)

Algorithm
egg-herbie
Rules
958×fma-neg_binary32
550×associate-/l/_binary32
528×fma-def_binary32
320×cancel-sign-sub-inv_binary32
174×associate-+l+_binary32
Counts
209 → 195
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
059658
1154606
2383580
3944506
42238506
54551502
64941502

prune115.0ms (1.9%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New2250225
Fresh000
Picked011
Done022
Total2253228
Error
0.0b
Counts
228 → 3
Alt Table
StatusErrorProgram
30.4b
(fma.f32 u (-.f32 (/.f32 v (exp.f32 (/.f32 -2 v))) v) -1)
30.3b
(-.f32 (+.f32 (*.f32 1/3 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 3))) (+.f32 (/.f32 (*.f32 v u) (exp.f32 (/.f32 -2 v))) (+.f32 (/.f32 (*.f32 v (pow.f32 u 2)) (exp.f32 (/.f32 -2 v))) (/.f32 (*.f32 v (pow.f32 u 3)) (exp.f32 (/.f32 -2 v)))))) (+.f32 (*.f32 1/2 (*.f32 v (pow.f32 u 2))) (+.f32 1 (+.f32 (*.f32 1/3 (*.f32 v (pow.f32 u 3))) (+.f32 (*.f32 v u) (+.f32 (/.f32 (*.f32 v (pow.f32 u 3)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)) (*.f32 1/2 (/.f32 (*.f32 v (pow.f32 u 2)) (pow.f32 (exp.f32 (/.f32 -2 v)) 2)))))))))
0.1b
(fma.f32 v (log.f32 (fma.f32 (-.f32 1 u) (*.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) (pow.f32 (cbrt.f32 (exp.f32 (/.f32 -2 v))) 2)) u)) 1)
Compiler

Compiled 4256 to 2809 computations (34% saved)

regimes793.0ms (13.4%)

Accuracy

Total 0.1b remaining (53%)

Threshold costs 0.1b (53%)

Counts
157 → 1
Compiler

Compiled 18680 to 13672 computations (26.8% saved)

simplify3.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
01629
12129
22529
32729
42829
52729

end101.0ms (1.7%)

Compiler

Compiled 176 to 132 computations (25% saved)

Profiling

Loading profile data...